<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MTB CAT1 Peripheral driver library: Low Level Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="IFXCYP_one-line.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">MTB CAT1 Peripheral driver library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__group__smif__low__level__functions.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">API Reference</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Low Level Functions<div class="ingroups"><a class="el" href="group__group__smif.html">SMIF         (Serial Memory Interface)</a> &raquo; <a class="el" href="group__group__smif__functions.html">Functions</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<p>The SMIF interface can be used to transmit different types of commands. </p>
<p>Each command has different phases: command, dummy cycles, and transmit and receive data which require separate APIs.</p>
<p>During the time that Slave Select line is active (LOW) the clock signal (CLK) is toggled while command information is first transferred on the data (IO) signals from the master to the slave. The clock continues to toggle during any period required for information access in the slave. The clock continues to toggle during the transfer of read data from the slave to the master or write data from the master to the slave. When the master has transferred the desired amount of data, the master drives the Slave Select line inactive (HIGH). Basic flow for read/write commands using <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand</a>, <a class="el" href="group__group__smif__low__level__functions.html#gae84cdf32e45e492e80dea38f9d3a7586">Cy_SMIF_TransmitData</a>, <a class="el" href="group__group__smif__low__level__functions.html#ga1b365e1400ccd6580533a0c92deb48c7">Cy_SMIF_ReceiveData</a> and <a class="el" href="group__group__smif__low__level__functions.html#gae40a30c84a9a5956d03279b9ee8c3999">Cy_SMIF_SendDummyCycles</a> with a Quad SPI interface.</p>
<div class="image">
<img src="smif_1_0_p03_rw_cmd.png" alt="smif_1_0_p03_rw_cmd.png"/>
</div>
<p>The sequence of the PDL functions required in a read or write transaction is: <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand()</a> -&gt; <a class="el" href="group__group__smif__low__level__functions.html#gae40a30c84a9a5956d03279b9ee8c3999">Cy_SMIF_SendDummyCycles()</a> -&gt; <a class="el" href="group__group__smif__low__level__functions.html#ga1b365e1400ccd6580533a0c92deb48c7">Cy_SMIF_ReceiveData()</a> / <a class="el" href="group__group__smif__low__level__functions.html#gae84cdf32e45e492e80dea38f9d3a7586">Cy_SMIF_TransmitData()</a> -&gt; <a class="el" href="group__group__smif__low__level__functions.html#ga58e965697047847ce906329eb6b5341c">Cy_SMIF_BusyCheck()</a>. The address is sent as part of the <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> function. No separate function call is required. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
API Reference</h2></td></tr>
<tr class="memitem:group__group__smif__functions__syspm__callback"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__functions__syspm__callback.html">Low Power Callback</a></td></tr>
<tr class="memdesc:group__group__smif__functions__syspm__callback"><td class="mdescLeft">&#160;</td><td class="mdescRight">The driver supports SysPm callback for Deep Sleep and Hibernate transition. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaea2684847f04e2e7e2c85cfe7fd37881"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gaea2684847f04e2e7e2c85cfe7fd37881">Cy_SMIF_Init</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__config__t.html">cy_stc_smif_config_t</a> const *config, uint32_t timeout, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:gaea2684847f04e2e7e2c85cfe7fd37881"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the SMIF block as a communication block.  <a href="#gaea2684847f04e2e7e2c85cfe7fd37881">More...</a><br /></td></tr>
<tr class="separator:gaea2684847f04e2e7e2c85cfe7fd37881"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa0020f3543dc622302fa272e1270230d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gaa0020f3543dc622302fa272e1270230d">Cy_SMIF_DllConfig</a> (volatile <a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__config__t.html">cy_stc_smif_config_t</a> const *config, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:gaa0020f3543dc622302fa272e1270230d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function configures the DLL for use, per the SMIF configuration structure parameters.  <a href="#gaa0020f3543dc622302fa272e1270230d">More...</a><br /></td></tr>
<tr class="separator:gaa0020f3543dc622302fa272e1270230d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacfff3629c2c649b4eb776e8e98523dda"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gacfff3629c2c649b4eb776e8e98523dda">Cy_SMIF_DeInit</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base)</td></tr>
<tr class="memdesc:gacfff3629c2c649b4eb776e8e98523dda"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function de-initializes the SMIF block to default values.  <a href="#gacfff3629c2c649b4eb776e8e98523dda">More...</a><br /></td></tr>
<tr class="separator:gacfff3629c2c649b4eb776e8e98523dda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1df033f6664a2b41cf044f2c4ec60817"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga1df033f6664a2b41cf044f2c4ec60817">Cy_SMIF_SetDataSelect</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveSelect, <a class="el" href="group__group__smif__enums.html#ga6d9ba2ef785b94cf542c573a51a0eb58">cy_en_smif_data_select_t</a> dataSelect)</td></tr>
<tr class="memdesc:ga1df033f6664a2b41cf044f2c4ec60817"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function configures the data select option for a specific slave.  <a href="#ga1df033f6664a2b41cf044f2c4ec60817">More...</a><br /></td></tr>
<tr class="separator:ga1df033f6664a2b41cf044f2c4ec60817"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga957f49ed7cf091e9b9d736ee589f2583"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga957f49ed7cf091e9b9d736ee589f2583">Cy_SMIF_SetMode</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#ga2baa7c37d2cedf2e2c837facc753ab5d">cy_en_smif_mode_t</a> <a class="el" href="group__group__ipc__bt__data__structures.html#ga37e90f5e3bd99fac2021fb3a326607d4">mode</a>)</td></tr>
<tr class="memdesc:ga957f49ed7cf091e9b9d736ee589f2583"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the mode of operation for the SMIF.  <a href="#ga957f49ed7cf091e9b9d736ee589f2583">More...</a><br /></td></tr>
<tr class="separator:ga957f49ed7cf091e9b9d736ee589f2583"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9d11d9c308bd61aa0050ed6cec4c734a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga2baa7c37d2cedf2e2c837facc753ab5d">cy_en_smif_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga9d11d9c308bd61aa0050ed6cec4c734a">Cy_SMIF_GetMode</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *base)</td></tr>
<tr class="memdesc:ga9d11d9c308bd61aa0050ed6cec4c734a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the mode of operation for the SMIF.  <a href="#ga9d11d9c308bd61aa0050ed6cec4c734a">More...</a><br /></td></tr>
<tr class="separator:ga9d11d9c308bd61aa0050ed6cec4c734a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5abea630fca93c72faece8b23549cd11"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t cmd, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> cmdTxfrWidth, uint8_t const cmdParam[], uint32_t paramSize, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> paramTxfrWidth, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveSelect, uint32_t completeTxfr, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga5abea630fca93c72faece8b23549cd11"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function transmits a command byte followed by a parameter which is typically an address field.  <a href="#ga5abea630fca93c72faece8b23549cd11">More...</a><br /></td></tr>
<tr class="separator:ga5abea630fca93c72faece8b23549cd11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae84cdf32e45e492e80dea38f9d3a7586"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gae84cdf32e45e492e80dea38f9d3a7586">Cy_SMIF_TransmitData</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t const *txBuffer, uint32_t size, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> transferWidth, <a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a> TxCompleteCb, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:gae84cdf32e45e492e80dea38f9d3a7586"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to transmit data using the SMIF interface.  <a href="#gae84cdf32e45e492e80dea38f9d3a7586">More...</a><br /></td></tr>
<tr class="separator:gae84cdf32e45e492e80dea38f9d3a7586"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60ce9afb095c14426f272a75ed51c9be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga60ce9afb095c14426f272a75ed51c9be">Cy_SMIF_TransmitDataBlocking</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t const *txBuffer, uint32_t size, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> transferWidth, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga60ce9afb095c14426f272a75ed51c9be"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the transmit data phase in the memory command.  <a href="#ga60ce9afb095c14426f272a75ed51c9be">More...</a><br /></td></tr>
<tr class="separator:ga60ce9afb095c14426f272a75ed51c9be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b365e1400ccd6580533a0c92deb48c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga1b365e1400ccd6580533a0c92deb48c7">Cy_SMIF_ReceiveData</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t *rxBuffer, uint32_t size, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> transferWidth, <a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a> RxCompleteCb, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga1b365e1400ccd6580533a0c92deb48c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the receive data phase in the memory command.  <a href="#ga1b365e1400ccd6580533a0c92deb48c7">More...</a><br /></td></tr>
<tr class="separator:ga1b365e1400ccd6580533a0c92deb48c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93c3033ff812c2342cea0657096a46b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga93c3033ff812c2342cea0657096a46b9">Cy_SMIF_ReceiveDataBlocking</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t *rxBuffer, uint32_t size, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> transferWidth, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga93c3033ff812c2342cea0657096a46b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the receive data phase in the memory command.  <a href="#ga93c3033ff812c2342cea0657096a46b9">More...</a><br /></td></tr>
<tr class="separator:ga93c3033ff812c2342cea0657096a46b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae40a30c84a9a5956d03279b9ee8c3999"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gae40a30c84a9a5956d03279b9ee8c3999">Cy_SMIF_SendDummyCycles</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint32_t cycles)</td></tr>
<tr class="memdesc:gae40a30c84a9a5956d03279b9ee8c3999"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends dummy-clock cycles.  <a href="#gae40a30c84a9a5956d03279b9ee8c3999">More...</a><br /></td></tr>
<tr class="separator:gae40a30c84a9a5956d03279b9ee8c3999"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90da2709c1d2a6967101a05e0eb27b08"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#gaf65a7e26c18fcd3d3469eb083f78bb85">cy_en_smif_txfr_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga90da2709c1d2a6967101a05e0eb27b08">Cy_SMIF_GetTransferStatus</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *base, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga90da2709c1d2a6967101a05e0eb27b08"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function provides the status of the transfer.  <a href="#ga90da2709c1d2a6967101a05e0eb27b08">More...</a><br /></td></tr>
<tr class="separator:ga90da2709c1d2a6967101a05e0eb27b08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5428ca682fd56b837a1a3763fc2596b8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga5428ca682fd56b837a1a3763fc2596b8">Cy_SMIF_Enable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga5428ca682fd56b837a1a3763fc2596b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the operation of the SMIF block.  <a href="#ga5428ca682fd56b837a1a3763fc2596b8">More...</a><br /></td></tr>
<tr class="separator:ga5428ca682fd56b837a1a3763fc2596b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff84f79f1cb122fa25eb03f73b496e63"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gaff84f79f1cb122fa25eb03f73b496e63">Cy_SMIF_TransmitCommand_Ext</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint16_t cmd, bool isCommand2byte, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> cmdTxfrWidth, <a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a> cmdDataRate, uint8_t const cmdParam[], uint32_t paramSize, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> paramTxfrWidth, <a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a> paramDataRate, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveSelect, uint32_t completeTxfr, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:gaff84f79f1cb122fa25eb03f73b496e63"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function transmits a command byte followed by a parameter which is typically an address field.  <a href="#gaff84f79f1cb122fa25eb03f73b496e63">More...</a><br /></td></tr>
<tr class="separator:gaff84f79f1cb122fa25eb03f73b496e63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c413cce1934b7d3e373f7f1e2270940"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga7c413cce1934b7d3e373f7f1e2270940">Cy_SMIF_TransmitData_Ext</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t const *txBuffer, uint32_t size, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> transferWidth, <a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a> dataDataRate, <a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a> TxCmpltCb, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga7c413cce1934b7d3e373f7f1e2270940"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to transmit data using the SMIF interface.  <a href="#ga7c413cce1934b7d3e373f7f1e2270940">More...</a><br /></td></tr>
<tr class="separator:ga7c413cce1934b7d3e373f7f1e2270940"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga44f065c16a2388b7020b15310b47724f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga44f065c16a2388b7020b15310b47724f">Cy_SMIF_TransmitDataBlocking_Ext</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t const *txBuffer, uint32_t size, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> transferWidth, <a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a> dataDataRate, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga44f065c16a2388b7020b15310b47724f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the transmit data phase in the memory command.  <a href="#ga44f065c16a2388b7020b15310b47724f">More...</a><br /></td></tr>
<tr class="separator:ga44f065c16a2388b7020b15310b47724f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2762a9749d61af95370c669561c8f042"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga2762a9749d61af95370c669561c8f042">Cy_SMIF_ReceiveData_Ext</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t *rxBuffer, uint32_t size, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> transferWidth, <a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a> dataRate, <a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a> RxCmpltCb, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga2762a9749d61af95370c669561c8f042"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the receive data phase in the memory command.  <a href="#ga2762a9749d61af95370c669561c8f042">More...</a><br /></td></tr>
<tr class="separator:ga2762a9749d61af95370c669561c8f042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18fc5b9f3fba366db39a16018dae9a64"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga18fc5b9f3fba366db39a16018dae9a64">Cy_SMIF_ReceiveDataBlocking_Ext</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t *rxBuffer, uint32_t size, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> transferWidth, <a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a> dataRate, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga18fc5b9f3fba366db39a16018dae9a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the receive data phase in the memory command.  <a href="#ga18fc5b9f3fba366db39a16018dae9a64">More...</a><br /></td></tr>
<tr class="separator:ga18fc5b9f3fba366db39a16018dae9a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3be6006b4c0c72703db49623734eccd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga3be6006b4c0c72703db49623734eccd6">Cy_SMIF_SendDummyCycles_Ext</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> transferWidth, <a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a> dataRate, uint32_t cycles)</td></tr>
<tr class="memdesc:ga3be6006b4c0c72703db49623734eccd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends dummy-clock cycles.  <a href="#ga3be6006b4c0c72703db49623734eccd6">More...</a><br /></td></tr>
<tr class="separator:ga3be6006b4c0c72703db49623734eccd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2534063268320780e2b2e8d10221fafb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga2534063268320780e2b2e8d10221fafb">Cy_SMIF_SendDummyCycles_With_RWDS</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, bool read_rwds, bool refresh_indicator, uint32_t cycles)</td></tr>
<tr class="memdesc:ga2534063268320780e2b2e8d10221fafb"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends dummy-clock cycles and observes additional input data signal RWDS.  <a href="#ga2534063268320780e2b2e8d10221fafb">More...</a><br /></td></tr>
<tr class="separator:ga2534063268320780e2b2e8d10221fafb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga194756a68fde927d8b6bbc5255177414"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga194756a68fde927d8b6bbc5255177414">Cy_SMIF_DeviceTransfer_SetMergeTimeout</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slave, <a class="el" href="group__group__smif__enums.html#ga58cf90a88ebb49c269bc67295d6e5cc3">cy_en_smif_merge_timeout_t</a> timeout)</td></tr>
<tr class="memdesc:ga194756a68fde927d8b6bbc5255177414"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function enables merging continuous transfers over XIP so that the overhead of transferring command and address will not be there for reading consecutive addresses.  <a href="#ga194756a68fde927d8b6bbc5255177414">More...</a><br /></td></tr>
<tr class="separator:ga194756a68fde927d8b6bbc5255177414"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d2d7ef86eccf2e7a3a2f760208bea0b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga6d2d7ef86eccf2e7a3a2f760208bea0b">Cy_SMIF_DeviceTransfer_ClearMergeTimeout</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slave)</td></tr>
<tr class="memdesc:ga6d2d7ef86eccf2e7a3a2f760208bea0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function disables continuous transfer merging.  <a href="#ga6d2d7ef86eccf2e7a3a2f760208bea0b">More...</a><br /></td></tr>
<tr class="separator:ga6d2d7ef86eccf2e7a3a2f760208bea0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a547a8e9db987215d7be94e25688ca1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga7a547a8e9db987215d7be94e25688ca1">Cy_SMIF_Set_DelayTapSel</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t tapSel)</td></tr>
<tr class="memdesc:ga7a547a8e9db987215d7be94e25688ca1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets delay tap number for the SMIF master clock which is common for all memory devices connected.  <a href="#ga7a547a8e9db987215d7be94e25688ca1">More...</a><br /></td></tr>
<tr class="separator:ga7a547a8e9db987215d7be94e25688ca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga810c01bc60e2eafeb53a7c9cfa0b7115"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga810c01bc60e2eafeb53a7c9cfa0b7115">Cy_SMIF_Get_DelayTapSel</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base)</td></tr>
<tr class="memdesc:ga810c01bc60e2eafeb53a7c9cfa0b7115"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns delay tap number which has been set for the SMIF.  <a href="#ga810c01bc60e2eafeb53a7c9cfa0b7115">More...</a><br /></td></tr>
<tr class="separator:ga810c01bc60e2eafeb53a7c9cfa0b7115"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf94a776664420fda15c8aa4a87b6db7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gaf94a776664420fda15c8aa4a87b6db7e">Cy_SMIF_Set_Sdl_DelayTapSel</a> (SMIF_CORE_DEVICE_Type *smif_device_base, uint8_t tapSel)</td></tr>
<tr class="memdesc:gaf94a776664420fda15c8aa4a87b6db7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the SDL (slave clock) delay tap number for the SMIF (common for all its devices).  <a href="#gaf94a776664420fda15c8aa4a87b6db7e">More...</a><br /></td></tr>
<tr class="separator:gaf94a776664420fda15c8aa4a87b6db7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga318b7c99ac2ba33e833cb4a0ab675e17"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga318b7c99ac2ba33e833cb4a0ab675e17">Cy_SMIF_Disable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base)</td></tr>
<tr class="memdesc:ga318b7c99ac2ba33e833cb4a0ab675e17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the operation of the SMIF block.  <a href="#ga318b7c99ac2ba33e833cb4a0ab675e17">More...</a><br /></td></tr>
<tr class="separator:ga318b7c99ac2ba33e833cb4a0ab675e17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae74985772e86b44ab99a95ea467f6245"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gae74985772e86b44ab99a95ea467f6245">Cy_SMIF_SetInterruptMask</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint32_t interrupt)</td></tr>
<tr class="memdesc:gae74985772e86b44ab99a95ea467f6245"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to set an interrupt mask for the SMIF Interrupt.  <a href="#gae74985772e86b44ab99a95ea467f6245">More...</a><br /></td></tr>
<tr class="separator:gae74985772e86b44ab99a95ea467f6245"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83bbab71bc76fc372b4c8ad363e2512d"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga83bbab71bc76fc372b4c8ad363e2512d">Cy_SMIF_GetInterruptMask</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *base)</td></tr>
<tr class="memdesc:ga83bbab71bc76fc372b4c8ad363e2512d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read an interrupt mask for the SMIF Interrupt.  <a href="#ga83bbab71bc76fc372b4c8ad363e2512d">More...</a><br /></td></tr>
<tr class="separator:ga83bbab71bc76fc372b4c8ad363e2512d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6eba5a1edd402a8170d0d5649dda98c4"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga6eba5a1edd402a8170d0d5649dda98c4">Cy_SMIF_GetInterruptStatusMasked</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *base)</td></tr>
<tr class="memdesc:ga6eba5a1edd402a8170d0d5649dda98c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read an active masked interrupt.  <a href="#ga6eba5a1edd402a8170d0d5649dda98c4">More...</a><br /></td></tr>
<tr class="separator:ga6eba5a1edd402a8170d0d5649dda98c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga412a309c2929869dea85c59a62067085"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga412a309c2929869dea85c59a62067085">Cy_SMIF_GetInterruptStatus</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *base)</td></tr>
<tr class="memdesc:ga412a309c2929869dea85c59a62067085"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read an active interrupt.  <a href="#ga412a309c2929869dea85c59a62067085">More...</a><br /></td></tr>
<tr class="separator:ga412a309c2929869dea85c59a62067085"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb165119cb003e0e69d6fcf39be65033"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gadb165119cb003e0e69d6fcf39be65033">Cy_SMIF_SetInterrupt</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint32_t interrupt)</td></tr>
<tr class="memdesc:gadb165119cb003e0e69d6fcf39be65033"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to set an interrupt source.  <a href="#gadb165119cb003e0e69d6fcf39be65033">More...</a><br /></td></tr>
<tr class="separator:gadb165119cb003e0e69d6fcf39be65033"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga728aaee38b9821b954d3a56e53787fb1"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga728aaee38b9821b954d3a56e53787fb1">Cy_SMIF_ClearInterrupt</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint32_t interrupt)</td></tr>
<tr class="memdesc:ga728aaee38b9821b954d3a56e53787fb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to clear an interrupt source.  <a href="#ga728aaee38b9821b954d3a56e53787fb1">More...</a><br /></td></tr>
<tr class="separator:ga728aaee38b9821b954d3a56e53787fb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9b71a3308f1a654b2fc583033761a7a"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gac9b71a3308f1a654b2fc583033761a7a">Cy_SMIF_SetTxFifoTriggerLevel</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint32_t level)</td></tr>
<tr class="memdesc:gac9b71a3308f1a654b2fc583033761a7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to set a trigger level for the TX FIFO.  <a href="#gac9b71a3308f1a654b2fc583033761a7a">More...</a><br /></td></tr>
<tr class="separator:gac9b71a3308f1a654b2fc583033761a7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac31d93c962f0ff359932ac8ad6a4baec"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gac31d93c962f0ff359932ac8ad6a4baec">Cy_SMIF_SetRxFifoTriggerLevel</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint32_t level)</td></tr>
<tr class="memdesc:gac31d93c962f0ff359932ac8ad6a4baec"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to set a trigger level for the RX FIFO.  <a href="#gac31d93c962f0ff359932ac8ad6a4baec">More...</a><br /></td></tr>
<tr class="separator:gac31d93c962f0ff359932ac8ad6a4baec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e0da7a14fb7bdc9ee054f87239b38e7"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga0e0da7a14fb7bdc9ee054f87239b38e7">Cy_SMIF_GetCmdFifoStatus</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *base)</td></tr>
<tr class="memdesc:ga0e0da7a14fb7bdc9ee054f87239b38e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read the status of the CMD FIFO.  <a href="#ga0e0da7a14fb7bdc9ee054f87239b38e7">More...</a><br /></td></tr>
<tr class="separator:ga0e0da7a14fb7bdc9ee054f87239b38e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10662c147b39a1b71a2f2221b0e3f59f"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga10662c147b39a1b71a2f2221b0e3f59f">Cy_SMIF_GetTxFifoStatus</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *base)</td></tr>
<tr class="memdesc:ga10662c147b39a1b71a2f2221b0e3f59f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read the status of the TX FIFO.  <a href="#ga10662c147b39a1b71a2f2221b0e3f59f">More...</a><br /></td></tr>
<tr class="separator:ga10662c147b39a1b71a2f2221b0e3f59f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54e4c5a29449fabe546b4770061f31b7"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga54e4c5a29449fabe546b4770061f31b7">Cy_SMIF_GetRxFifoStatus</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *base)</td></tr>
<tr class="memdesc:ga54e4c5a29449fabe546b4770061f31b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read the status of the RX FIFO.  <a href="#ga54e4c5a29449fabe546b4770061f31b7">More...</a><br /></td></tr>
<tr class="separator:ga54e4c5a29449fabe546b4770061f31b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91a32005b94591adb8fd7daa1068ddbc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga91a32005b94591adb8fd7daa1068ddbc">Cy_SMIF_Encrypt</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint32_t address, uint8_t data[], uint32_t size, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga91a32005b94591adb8fd7daa1068ddbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uses the Encryption engine to create an encrypted result when the input, key and data arrays are provided.  <a href="#ga91a32005b94591adb8fd7daa1068ddbc">More...</a><br /></td></tr>
<tr class="separator:ga91a32005b94591adb8fd7daa1068ddbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58e965697047847ce906329eb6b5341c"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga58e965697047847ce906329eb6b5341c">Cy_SMIF_BusyCheck</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *base)</td></tr>
<tr class="memdesc:ga58e965697047847ce906329eb6b5341c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function provides the status of the IP block (False - not busy, True - busy).  <a href="#ga58e965697047847ce906329eb6b5341c">More...</a><br /></td></tr>
<tr class="separator:ga58e965697047847ce906329eb6b5341c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaedbec6f968745b8f594dd4b32e91ceba"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gaedbec6f968745b8f594dd4b32e91ceba">Cy_SMIF_Interrupt</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:gaedbec6f968745b8f594dd4b32e91ceba"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Interrupt Service Routine for the SMIF.  <a href="#gaedbec6f968745b8f594dd4b32e91ceba">More...</a><br /></td></tr>
<tr class="separator:gaedbec6f968745b8f594dd4b32e91ceba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28f06f761c260849fa8e37d7a3f858dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga28f06f761c260849fa8e37d7a3f858dc">Cy_SMIF_CacheEnable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a> cacheType)</td></tr>
<tr class="memdesc:ga28f06f761c260849fa8e37d7a3f858dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to enable the fast cache, the slow cache or both.  <a href="#ga28f06f761c260849fa8e37d7a3f858dc">More...</a><br /></td></tr>
<tr class="separator:ga28f06f761c260849fa8e37d7a3f858dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb0c1e80c19ef607a1efc70df6818ccb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gacb0c1e80c19ef607a1efc70df6818ccb">Cy_SMIF_CacheDisable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a> cacheType)</td></tr>
<tr class="memdesc:gacb0c1e80c19ef607a1efc70df6818ccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to disable the fast cache, the slow cache or both.  <a href="#gacb0c1e80c19ef607a1efc70df6818ccb">More...</a><br /></td></tr>
<tr class="separator:gacb0c1e80c19ef607a1efc70df6818ccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ff445110c019e30b942fb87878b32c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga0ff445110c019e30b942fb87878b32c7">Cy_SMIF_CachePrefetchingEnable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a> cacheType)</td></tr>
<tr class="memdesc:ga0ff445110c019e30b942fb87878b32c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to enable pre-fetching for the fast cache, the slow cache or both.  <a href="#ga0ff445110c019e30b942fb87878b32c7">More...</a><br /></td></tr>
<tr class="separator:ga0ff445110c019e30b942fb87878b32c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbb34fe2a90c311a2e1fa23c66a21c81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gabbb34fe2a90c311a2e1fa23c66a21c81">Cy_SMIF_CachePrefetchingDisable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a> cacheType)</td></tr>
<tr class="memdesc:gabbb34fe2a90c311a2e1fa23c66a21c81"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to disable pre-fetching for the fast cache, the slow cache or both.  <a href="#gabbb34fe2a90c311a2e1fa23c66a21c81">More...</a><br /></td></tr>
<tr class="separator:gabbb34fe2a90c311a2e1fa23c66a21c81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72240c0ce8307c50b65c4fca45c9cd30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga72240c0ce8307c50b65c4fca45c9cd30">Cy_SMIF_CacheInvalidate</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a> cacheType)</td></tr>
<tr class="memdesc:ga72240c0ce8307c50b65c4fca45c9cd30"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to invalidate/clear the fast cache, the slow cache or both.  <a href="#ga72240c0ce8307c50b65c4fca45c9cd30">More...</a><br /></td></tr>
<tr class="separator:ga72240c0ce8307c50b65c4fca45c9cd30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49e4163f4131d692405b9e9430ac61b6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga49e4163f4131d692405b9e9430ac61b6">Cy_SMIF_SetCryptoKey</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint32_t *key)</td></tr>
<tr class="memdesc:ga49e4163f4131d692405b9e9430ac61b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the AES-128 encryption key into SMIF crypto registers.  <a href="#ga49e4163f4131d692405b9e9430ac61b6">More...</a><br /></td></tr>
<tr class="separator:ga49e4163f4131d692405b9e9430ac61b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac43fe9363025064cfa881b2bed68c645"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gac43fe9363025064cfa881b2bed68c645">Cy_SMIF_SetCryptoIV</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint32_t *nonce)</td></tr>
<tr class="memdesc:gac43fe9363025064cfa881b2bed68c645"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the 96 bit initialization vector (nonce) into SMIF crypto registers.  <a href="#gac43fe9363025064cfa881b2bed68c645">More...</a><br /></td></tr>
<tr class="separator:gac43fe9363025064cfa881b2bed68c645"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab65ee303c9b39e383297dae50e1efba1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gab65ee303c9b39e383297dae50e1efba1">Cy_SMIF_SetCryptoEnable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveId)</td></tr>
<tr class="memdesc:gab65ee303c9b39e383297dae50e1efba1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables SMIF encryption.  <a href="#gab65ee303c9b39e383297dae50e1efba1">More...</a><br /></td></tr>
<tr class="separator:gab65ee303c9b39e383297dae50e1efba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad5d21a6411e7b0a176394b39d54c6eeb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gad5d21a6411e7b0a176394b39d54c6eeb">Cy_SMIF_SetCryptoDisable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveId)</td></tr>
<tr class="memdesc:gad5d21a6411e7b0a176394b39d54c6eeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables SMIF encryption.  <a href="#gad5d21a6411e7b0a176394b39d54c6eeb">More...</a><br /></td></tr>
<tr class="separator:gad5d21a6411e7b0a176394b39d54c6eeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac240b9055afb5c86a8ed9c6a23f9ba23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gac240b9055afb5c86a8ed9c6a23f9ba23">Cy_SMIF_IsCryptoEnabled</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveId, bool *crypto_status)</td></tr>
<tr class="memdesc:gac240b9055afb5c86a8ed9c6a23f9ba23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the status of encryption for the selected slave device.  <a href="#gac240b9055afb5c86a8ed9c6a23f9ba23">More...</a><br /></td></tr>
<tr class="separator:gac240b9055afb5c86a8ed9c6a23f9ba23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5252ac741f6ba0122748d89d907d87f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga5252ac741f6ba0122748d89d907d87f6">Cy_SMIF_ConvertSlaveSlotToIndex</a> (<a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> ss, uint32_t *device_idx)</td></tr>
<tr class="memdesc:ga5252ac741f6ba0122748d89d907d87f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Slave Select enum to the device index.  <a href="#ga5252ac741f6ba0122748d89d907d87f6">More...</a><br /></td></tr>
<tr class="separator:ga5252ac741f6ba0122748d89d907d87f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga25746c7a8d9bd474509d10dcf48133ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga25746c7a8d9bd474509d10dcf48133ca">Cy_SMIF_SetRxCaptureMode</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#ga159307bb2b563a18f87dcf492a2bcc75">cy_en_smif_capture_mode_t</a> <a class="el" href="group__group__ipc__bt__data__structures.html#ga37e90f5e3bd99fac2021fb3a326607d4">mode</a>, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveId)</td></tr>
<tr class="memdesc:ga25746c7a8d9bd474509d10dcf48133ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the Rx Capture mode setting for SMIF IP block instance.  <a href="#ga25746c7a8d9bd474509d10dcf48133ca">More...</a><br /></td></tr>
<tr class="separator:ga25746c7a8d9bd474509d10dcf48133ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa4ba290997356aff8767bf5519fcbb33"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gaa4ba290997356aff8767bf5519fcbb33">Cy_SMIF_IsBridgeOn</a> (SMIF_Base_Type *base)</td></tr>
<tr class="memdesc:gaa4ba290997356aff8767bf5519fcbb33"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to check the bridge enable state.  <a href="#gaa4ba290997356aff8767bf5519fcbb33">More...</a><br /></td></tr>
<tr class="separator:gaa4ba290997356aff8767bf5519fcbb33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6633fdcf48299706b9c87369d1adf26f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga6633fdcf48299706b9c87369d1adf26f">Cy_SMIF_Bridge_Enable</a> (SMIF_Base_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga6633fdcf48299706b9c87369d1adf26f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to enable/disable Bridge.  <a href="#ga6633fdcf48299706b9c87369d1adf26f">More...</a><br /></td></tr>
<tr class="separator:ga6633fdcf48299706b9c87369d1adf26f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ecd1075db9d75ae45f4eb437dbfed8d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga6ecd1075db9d75ae45f4eb437dbfed8d">Cy_SMIF_SetMasterDLP</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint16 dlp, uint8_t size)</td></tr>
<tr class="memdesc:ga6ecd1075db9d75ae45f4eb437dbfed8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the data learning pattern.  <a href="#ga6ecd1075db9d75ae45f4eb437dbfed8d">More...</a><br /></td></tr>
<tr class="separator:ga6ecd1075db9d75ae45f4eb437dbfed8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga338f6c1d218cd2093c48254995f6f06b"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga338f6c1d218cd2093c48254995f6f06b">Cy_SMIF_GetMasterDLP</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base)</td></tr>
<tr class="memdesc:ga338f6c1d218cd2093c48254995f6f06b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function gets the data learning pattern configured.  <a href="#ga338f6c1d218cd2093c48254995f6f06b">More...</a><br /></td></tr>
<tr class="separator:ga338f6c1d218cd2093c48254995f6f06b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga220136f6a2fe90ea720c3e1577f96421"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga220136f6a2fe90ea720c3e1577f96421">Cy_SMIF_GetMasterDLPSize</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base)</td></tr>
<tr class="memdesc:ga220136f6a2fe90ea720c3e1577f96421"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function gets the data learning pattern size configured.  <a href="#ga220136f6a2fe90ea720c3e1577f96421">More...</a><br /></td></tr>
<tr class="separator:ga220136f6a2fe90ea720c3e1577f96421"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7f56e6919c991ce5b1e0947c0994644"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gae7f56e6919c991ce5b1e0947c0994644">Cy_SMIF_GetTapNumCapturedCorrectDLP</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, uint8_t bit)</td></tr>
<tr class="memdesc:gae7f56e6919c991ce5b1e0947c0994644"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function gets number of delay taps used for specified data line.  <a href="#gae7f56e6919c991ce5b1e0947c0994644">More...</a><br /></td></tr>
<tr class="separator:gae7f56e6919c991ce5b1e0947c0994644"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae88b33af21e1dd8fc761317b4f81b4f4"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gae88b33af21e1dd8fc761317b4f81b4f4">CY_SMIF_GetDelayTapsNumber</a> (volatile void *base)</td></tr>
<tr class="memdesc:gae88b33af21e1dd8fc761317b4f81b4f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns tap number which the SMIF IP has.  <a href="#gae88b33af21e1dd8fc761317b4f81b4f4">More...</a><br /></td></tr>
<tr class="separator:gae88b33af21e1dd8fc761317b4f81b4f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab67d2aecdf1783c11ea54acb78ea2034"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gab67d2aecdf1783c11ea54acb78ea2034">Cy_SMIF_InitCache</a> (SMIF_CACHE_BLOCK_Type *base, const <a class="el" href="structcy__stc__smif__cache__config__t.html">cy_stc_smif_cache_config_t</a> *cache_config)</td></tr>
<tr class="memdesc:gab67d2aecdf1783c11ea54acb78ea2034"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes SMIF internal CACHE with user provided configuration <a class="el" href="structcy__stc__smif__cache__config__t.html">cy_stc_smif_cache_config_t</a>.  <a href="#gab67d2aecdf1783c11ea54acb78ea2034">More...</a><br /></td></tr>
<tr class="separator:gab67d2aecdf1783c11ea54acb78ea2034"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf787cd8f7a861b180590d688355e8f60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gaf787cd8f7a861b180590d688355e8f60">Cy_SMIF_Clean_All_Cache</a> (SMIF_CACHE_BLOCK_Type *base)</td></tr>
<tr class="memdesc:gaf787cd8f7a861b180590d688355e8f60"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function cleans complete SMIF internal CACHE.  <a href="#gaf787cd8f7a861b180590d688355e8f60">More...</a><br /></td></tr>
<tr class="separator:gaf787cd8f7a861b180590d688355e8f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2538ba5552b05c63ae9a2a4c21dbcab3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga2538ba5552b05c63ae9a2a4c21dbcab3">Cy_SMIF_Invalidate_All_Cache</a> (SMIF_CACHE_BLOCK_Type *base)</td></tr>
<tr class="memdesc:ga2538ba5552b05c63ae9a2a4c21dbcab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function invalidates complete SMIF internal CACHE.  <a href="#ga2538ba5552b05c63ae9a2a4c21dbcab3">More...</a><br /></td></tr>
<tr class="separator:ga2538ba5552b05c63ae9a2a4c21dbcab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a1e1e493def6dbcf46207f7e322052d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga2a1e1e493def6dbcf46207f7e322052d">Cy_SMIF_Clean_And_Invalidate_All_Cache</a> (SMIF_CACHE_BLOCK_Type *base)</td></tr>
<tr class="memdesc:ga2a1e1e493def6dbcf46207f7e322052d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function cleans and invalidates complete SMIF internal CACHE.  <a href="#ga2a1e1e493def6dbcf46207f7e322052d">More...</a><br /></td></tr>
<tr class="separator:ga2a1e1e493def6dbcf46207f7e322052d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7443088032b3b278ad5a9228be60378b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga7443088032b3b278ad5a9228be60378b">Cy_SMIF_Clean_Cache_by_Addr</a> (SMIF_CACHE_BLOCK_Type *base, bool is_secure_view, uint32_t address, uint32_t size)</td></tr>
<tr class="memdesc:ga7443088032b3b278ad5a9228be60378b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function cleans cache using the address and size specified by user.  <a href="#ga7443088032b3b278ad5a9228be60378b">More...</a><br /></td></tr>
<tr class="separator:ga7443088032b3b278ad5a9228be60378b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4be70e1edc5b91fbe0269e28395ae375"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#ga4be70e1edc5b91fbe0269e28395ae375">Cy_SMIF_Invalidate_Cache_by_Addr</a> (SMIF_CACHE_BLOCK_Type *base, bool is_secure_view, uint32_t address, uint32_t size)</td></tr>
<tr class="memdesc:ga4be70e1edc5b91fbe0269e28395ae375"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function invalidates cache using the address and size specified by user.  <a href="#ga4be70e1edc5b91fbe0269e28395ae375">More...</a><br /></td></tr>
<tr class="separator:ga4be70e1edc5b91fbe0269e28395ae375"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa86bff8a6d243c3d27a12414c5fbb174"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gaa86bff8a6d243c3d27a12414c5fbb174">Cy_SMIF_Clean_And_Invalidate_Cache_by_Addr</a> (SMIF_CACHE_BLOCK_Type *base, bool is_secure_view, uint32_t address, uint32_t size)</td></tr>
<tr class="memdesc:gaa86bff8a6d243c3d27a12414c5fbb174"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function cleans and invalidates cache using the address and size specified by user.  <a href="#gaa86bff8a6d243c3d27a12414c5fbb174">More...</a><br /></td></tr>
<tr class="separator:gaa86bff8a6d243c3d27a12414c5fbb174"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace242e70ec47914d4c99ccce0bdf4b39"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__low__level__functions.html#gace242e70ec47914d4c99ccce0bdf4b39">Cy_SMIF_IsCacheEnabled</a> (SMIF_CACHE_BLOCK_Type *base, bool *cache_status)</td></tr>
<tr class="memdesc:gace242e70ec47914d4c99ccce0bdf4b39"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function checks whether Cache is enabled or not.  <a href="#gace242e70ec47914d4c99ccce0bdf4b39">More...</a><br /></td></tr>
<tr class="separator:gace242e70ec47914d4c99ccce0bdf4b39"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaea2684847f04e2e7e2c85cfe7fd37881"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaea2684847f04e2e7e2c85cfe7fd37881">&#9670;&nbsp;</a></span>Cy_SMIF_Init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__config__t.html">cy_stc_smif_config_t</a> const *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>timeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initializes the SMIF block as a communication block. </p>
<p>The user must ensure that the SMIF interrupt is disabled while this function is called. Enabling the interrupts can lead to triggering in the middle of the initialization operation, which can lead to erroneous initialization.</p>
<p>As parameters, this function takes the SMIF register base address and a context structure along with the configuration needed for the SMIF block, stored in a config.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">config</td><td>Passes a configuration structure that configures the SMIF block for operation.</td></tr>
    <tr><td class="paramname">timeout</td><td>A timeout in microseconds for blocking APIs in use.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Make sure that the interrupts are initialized and disabled.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="gaa0020f3543dc622302fa272e1270230d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa0020f3543dc622302fa272e1270230d">&#9670;&nbsp;</a></span>Cy_SMIF_DllConfig()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_DllConfig </td>
          <td>(</td>
          <td class="paramtype">volatile <a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__config__t.html">cy_stc_smif_config_t</a> const *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function configures the DLL for use, per the SMIF configuration structure parameters. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">config</td><td>Passes a configuration structure that configures the SMIF block for operation, here specifically it is used to configure the DLL.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The SMIF must be disabled before calling the function. Call <a class="el" href="group__group__smif__low__level__functions.html#ga318b7c99ac2ba33e833cb4a0ab675e17">Cy_SMIF_Disable</a> </dd></dl>

</div>
</div>
<a id="gacfff3629c2c649b4eb776e8e98523dda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacfff3629c2c649b4eb776e8e98523dda">&#9670;&nbsp;</a></span>Cy_SMIF_DeInit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_DeInit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function de-initializes the SMIF block to default values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The SMIF must be disabled before calling the function. Call <a class="el" href="group__group__smif__low__level__functions.html#ga318b7c99ac2ba33e833cb4a0ab675e17">Cy_SMIF_Disable</a> </dd></dl>

</div>
</div>
<a id="ga1df033f6664a2b41cf044f2c4ec60817"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1df033f6664a2b41cf044f2c4ec60817">&#9670;&nbsp;</a></span>Cy_SMIF_SetDataSelect()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_SetDataSelect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slaveSelect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga6d9ba2ef785b94cf542c573a51a0eb58">cy_en_smif_data_select_t</a>&#160;</td>
          <td class="paramname"><em>dataSelect</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function configures the data select option for a specific slave. </p>
<p>The selection provides pre-set combinations for connecting the SMIF data lines to the GPIOs.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slaveSelect</td><td>The slave device ID. This number is either CY_SMIF_SLAVE_SELECT_0 or CY_SMIF_SLAVE_SELECT_1 or CY_SMIF_SLAVE_SELECT_2 or CY_SMIF_SLAVE_SELECT_3 (<a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>). It defines the slave select line to be used during the transmission.</td></tr>
    <tr><td class="paramname">dataSelect</td><td>This parameter selects the data select option. <a class="el" href="group__group__smif__enums.html#ga6d9ba2ef785b94cf542c573a51a0eb58">cy_en_smif_data_select_t</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga957f49ed7cf091e9b9d736ee589f2583"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga957f49ed7cf091e9b9d736ee589f2583">&#9670;&nbsp;</a></span>Cy_SMIF_SetMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_SetMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga2baa7c37d2cedf2e2c837facc753ab5d">cy_en_smif_mode_t</a>&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the mode of operation for the SMIF. </p>
<p>The mode of operation can be the XIP mode where the slave devices are mapped as memories and are directly accessed from the PSoC register map. In the MMIO mode, the SMIF block acts as a simple SPI engine. MMIO mode and XIP modes are mutually exclusive. SMIF IP Version 3 and above support MMIO mode transactions even when XIP mode is enabled. However, user has to ensure that XIP transaction is not issued during an ongoing MMIO transaction. Rather wait for MMIO transaction to complete since few MMIO operations make external flash busy and it cannot respond to XIP read transaction.</p>
<dl class="section note"><dt>Note</dt><dd>With SMIF V1 IP, Interrupt and triggers are not working in XIP mode, see TRM for details</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">mode</td><td>The mode of the SMIF operation. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga9d11d9c308bd61aa0050ed6cec4c734a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9d11d9c308bd61aa0050ed6cec4c734a">&#9670;&nbsp;</a></span>Cy_SMIF_GetMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga2baa7c37d2cedf2e2c837facc753ab5d">cy_en_smif_mode_t</a> Cy_SMIF_GetMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads the mode of operation for the SMIF. </p>
<p>The mode of operation can be the XIP mode where the slave devices are mapped as memories and are directly accessed from the PSoC register map. In the MMIO mode, the SMIF block acts as a simple SPI engine.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The mode of SMIF operation (see <a class="el" href="group__group__smif__enums.html#ga2baa7c37d2cedf2e2c837facc753ab5d">cy_en_smif_mode_t</a>). </dd></dl>

</div>
</div>
<a id="ga5abea630fca93c72faece8b23549cd11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5abea630fca93c72faece8b23549cd11">&#9670;&nbsp;</a></span>Cy_SMIF_TransmitCommand()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_TransmitCommand </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>cmd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>cmdTxfrWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const&#160;</td>
          <td class="paramname"><em>cmdParam</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>paramSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>paramTxfrWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slaveSelect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>completeTxfr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function transmits a command byte followed by a parameter which is typically an address field. </p>
<p>The transfer is implemented using the TX FIFO. This function also asserts the slave select line. A command to a memory device generally starts with a command byte transmission. This function sets up the slave lines for the rest of the command structure. The <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand</a> is called before <a class="el" href="group__group__smif__low__level__functions.html#gae84cdf32e45e492e80dea38f9d3a7586">Cy_SMIF_TransmitData</a> or <a class="el" href="group__group__smif__low__level__functions.html#ga1b365e1400ccd6580533a0c92deb48c7">Cy_SMIF_ReceiveData</a> is called. When enabled, the completeTxfr parameter in the function will de-assert the slave select line at the end of the function execution.</p>
<dl class="section note"><dt>Note</dt><dd>This function blocks until all the command and associated parameters have been transmitted over the SMIF block or timeout expire.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">cmd</td><td>The command byte to be transmitted.</td></tr>
    <tr><td class="paramname">cmdTxfrWidth</td><td>The width of command byte transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">cmdParam</td><td>This is the pointer to an array that has bytes to be transmitted after the command byte. Typically, this field has the address bytes associated with the memory command.</td></tr>
    <tr><td class="paramname">paramSize</td><td>The size of the cmdParam array.</td></tr>
    <tr><td class="paramname">paramTxfrWidth</td><td>The width of parameter transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">slaveSelect</td><td>Denotes the number of the slave device to which the transfer is made. (0, 1, 2 or 4 - the bit defines which slave to enable) Two-bit enable is possible only for the double quad SPI mode.</td></tr>
    <tr><td class="paramname">completeTxfr</td><td>Specifies if the slave select line must be de-asserted after transferring the last byte in the parameter array. Typically, this field is set to 0 when this function succeed through <a class="el" href="group__group__smif__low__level__functions.html#gae84cdf32e45e492e80dea38f9d3a7586">Cy_SMIF_TransmitData</a> or <a class="el" href="group__group__smif__low__level__functions.html#ga1b365e1400ccd6580533a0c92deb48c7">Cy_SMIF_ReceiveData</a>.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmit.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Check <a class="el" href="group__group__smif.html#group_smif_usage_rules">Rules for PSoC6 QSPI/SMIF Block Usage</a> for any usage restriction </dd></dl>

</div>
</div>
<a id="gae84cdf32e45e492e80dea38f9d3a7586"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae84cdf32e45e492e80dea38f9d3a7586">&#9670;&nbsp;</a></span>Cy_SMIF_TransmitData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_TransmitData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>txBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>transferWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a>&#160;</td>
          <td class="paramname"><em>TxCompleteCb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to transmit data using the SMIF interface. </p>
<p>This function uses the TX Data FIFO to implement the transmit functionality. The function sets up an interrupt to trigger the TX Data FIFO and uses that interrupt to fill the TX Data FIFO until all the data is transmitted. At the end of the transmission, the TxCompleteCb is executed.</p>
<dl class="section note"><dt>Note</dt><dd>This function is to be preceded by <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand</a> where the slave select is selected. The slave is de-asserted at the end of a transmit. The function triggers the transfer and the transfer itself utilizes the interrupt for FIFO operations in the background. Thus, frequent interrupts will be executed after this function is triggered. Since this API is non-blocking and sets up the interrupt to act on the data FIFO, ensure there will be no another instance of the function called before the current instance has completed execution.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">txBuffer</td><td>The pointer to the data to be transferred. If this pointer is a NULL, then the function does not enable the interrupt. This use case is typically used when the FIFO is handled outside the interrupt and is managed in either a polling-based code or a DMA. The user would handle the FIFO management in a DMA or a polling-based code.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the user provides a NULL pointer in this function and does not handle the FIFO transaction, this could either stall or timeout the operation. The transfer statuses returned by <a class="el" href="group__group__smif__low__level__functions.html#ga90da2709c1d2a6967101a05e0eb27b08">Cy_SMIF_GetTransferStatus</a> are no longer valid.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of txBuffer. Must be &gt; 0 and not greater than 65536.</td></tr>
    <tr><td class="paramname">transferWidth</td><td>The width of transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">TxCompleteCb</td><td>The callback executed at the end of a transmission. NULL interpreted as no callback.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of a transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga60ce9afb095c14426f272a75ed51c9be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga60ce9afb095c14426f272a75ed51c9be">&#9670;&nbsp;</a></span>Cy_SMIF_TransmitDataBlocking()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_TransmitDataBlocking </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>txBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>transferWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function implements the transmit data phase in the memory command. </p>
<p>The data is transmitted using the Tx Data FIFO and the TX_COUNT command. This function blocks until completion. The function does not use the interrupts and will use CPU to monitor the FIFO status and move data accordingly. The function returns only on completion.</p>
<dl class="section note"><dt>Note</dt><dd>Since this API is blocking, ensure that other transfers finished and it will not be called during non-blocking transfer.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">txBuffer</td><td>The pointer to the data to be transferred. If this pointer is a NULL, then the function does not fill TX_FIFO. The user would handle the FIFO management in a DMA or a polling-based code.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the user provides a NULL pointer in this function and does not handle the FIFO transaction, this could either stall or timeout the operation. The transfer statuses returned by <a class="el" href="group__group__smif__low__level__functions.html#ga90da2709c1d2a6967101a05e0eb27b08">Cy_SMIF_GetTransferStatus</a> are no longer valid.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of txBuffer. Must be &gt; 0 and not greater than 65536.</td></tr>
    <tr><td class="paramname">transferWidth</td><td>The width of transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of a transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga1b365e1400ccd6580533a0c92deb48c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1b365e1400ccd6580533a0c92deb48c7">&#9670;&nbsp;</a></span>Cy_SMIF_ReceiveData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_ReceiveData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>transferWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a>&#160;</td>
          <td class="paramname"><em>RxCompleteCb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function implements the receive data phase in the memory command. </p>
<p>The data is received into the RX Data FIFO using the RX_COUNT command. This function sets up the interrupt to trigger on the RX Data FIFO level, and the data is fetched from the RX Data FIFO to the rxBuffer as it gets filled. This function does not block until completion. The completion will trigger the call back function.</p>
<dl class="section note"><dt>Note</dt><dd>This function is to be preceded by <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand</a>. The slave select is de-asserted at the end of the receive. The function triggers the transfer and the transfer itself utilizes the interrupt for FIFO operations in the background. Thus, frequent interrupts will be executed after this function is triggered. This API is non-blocking and sets up the interrupt to act on the data FIFO, ensure there will be no another instance of the function called before the current instance has completed execution.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">rxBuffer</td><td>The pointer to the variable where the receive data is stored. If this pointer is a NULL, then the function does not enable the interrupt. This use case is typically used when the FIFO is handled outside the interrupt and is managed in either a polling-based code or a DMA. The user would handle the FIFO management in a DMA or a polling-based code.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the user provides a NULL pointer in this function and does not handle the FIFO transaction, this could either stall or timeout the operation. The transfer statuses returned by <a class="el" href="group__group__smif__low__level__functions.html#ga90da2709c1d2a6967101a05e0eb27b08">Cy_SMIF_GetTransferStatus</a> are no longer valid.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of data to be received. Must be &gt; 0 and not greater than 65536.</td></tr>
    <tr><td class="paramname">transferWidth</td><td>The width of transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">RxCompleteCb</td><td>The callback executed at the end of a reception. NULL interpreted as no callback.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of a reception.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Check <a class="el" href="group__group__smif.html#group_smif_usage_rules">Rules for PSoC6 QSPI/SMIF Block Usage</a> for any usage restriction </dd></dl>

</div>
</div>
<a id="ga93c3033ff812c2342cea0657096a46b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93c3033ff812c2342cea0657096a46b9">&#9670;&nbsp;</a></span>Cy_SMIF_ReceiveDataBlocking()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_ReceiveDataBlocking </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>transferWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function implements the receive data phase in the memory command. </p>
<p>The data is received into the RX Data FIFO using the RX_COUNT command. This function blocks until completion. The function does not use the interrupts and will use CPU to monitor the FIFO status and move data accordingly. The function returns only on completion.</p>
<dl class="section note"><dt>Note</dt><dd>This function is to be preceded by <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand</a>. The slave select is de-asserted at the end of the receive. Ensure there is no another transfers.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">rxBuffer</td><td>The pointer to the variable where the receive data is stored. If this pointer is a NULL, then the function does not enable the interrupt. This use case is typically used when the FIFO is handled outside the interrupt and is managed in either a polling-based code or a DMA. The user would handle the FIFO management in a DMA or a polling-based code.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the user provides a NULL pointer in this function and does not handle the FIFO transaction, this could either stall or timeout the operation. The transfer statuses returned by <a class="el" href="group__group__smif__low__level__functions.html#ga90da2709c1d2a6967101a05e0eb27b08">Cy_SMIF_GetTransferStatus</a> are no longer valid.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of data to be received. Must be &gt; 0 and not greater than 65536.</td></tr>
    <tr><td class="paramname">transferWidth</td><td>The width of transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of a reception.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Check <a class="el" href="group__group__smif.html#group_smif_usage_rules">Rules for PSoC6 QSPI/SMIF Block Usage</a> for any usage restriction </dd></dl>

</div>
</div>
<a id="gae40a30c84a9a5956d03279b9ee8c3999"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae40a30c84a9a5956d03279b9ee8c3999">&#9670;&nbsp;</a></span>Cy_SMIF_SendDummyCycles()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_SendDummyCycles </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>cycles</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends dummy-clock cycles. </p>
<p>The data lines are tri-stated during the dummy cycles.</p>
<dl class="section note"><dt>Note</dt><dd>This function is to be preceded by <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">cycles</td><td>The number of dummy cycles. Must be &gt; 0 and not greater than 65536.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of dummy cycles sending.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga90da2709c1d2a6967101a05e0eb27b08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga90da2709c1d2a6967101a05e0eb27b08">&#9670;&nbsp;</a></span>Cy_SMIF_GetTransferStatus()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#gaf65a7e26c18fcd3d3469eb083f78bb85">cy_en_smif_txfr_status_t</a> Cy_SMIF_GetTransferStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function provides the status of the transfer. </p>
<p>This function is used to poll for the status of the TransmitData or receiveData function. When this function is called to determine the status of ongoing <a class="el" href="group__group__smif__low__level__functions.html#ga1b365e1400ccd6580533a0c92deb48c7">Cy_SMIF_ReceiveData()</a> or <a class="el" href="group__group__smif__low__level__functions.html#gae84cdf32e45e492e80dea38f9d3a7586">Cy_SMIF_TransmitData()</a>, the returned status is only valid if the functions passed a non-NULL buffer to transmit or receive respectively. If the pointer passed to <a class="el" href="group__group__smif__low__level__functions.html#ga1b365e1400ccd6580533a0c92deb48c7">Cy_SMIF_ReceiveData()</a> or <a class="el" href="group__group__smif__low__level__functions.html#gae84cdf32e45e492e80dea38f9d3a7586">Cy_SMIF_TransmitData()</a> is a NULL, then the code/DMA outside this driver will take care of the transfer and the Cy_GetTxfrStatus() will return an erroneous result.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns the transfer status. <a class="el" href="group__group__smif__enums.html#gaf65a7e26c18fcd3d3469eb083f78bb85">cy_en_smif_txfr_status_t</a> </dd></dl>

</div>
</div>
<a id="ga5428ca682fd56b837a1a3763fc2596b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5428ca682fd56b837a1a3763fc2596b8">&#9670;&nbsp;</a></span>Cy_SMIF_Enable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_Enable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enables the operation of the SMIF block. </p>
<dl class="section note"><dt>Note</dt><dd>This function only enables the SMIF IP. The interrupts associated with the SMIF will need to be separately enabled using the interrupt driver.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaff84f79f1cb122fa25eb03f73b496e63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaff84f79f1cb122fa25eb03f73b496e63">&#9670;&nbsp;</a></span>Cy_SMIF_TransmitCommand_Ext()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_TransmitCommand_Ext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>cmd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isCommand2byte</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>cmdTxfrWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a>&#160;</td>
          <td class="paramname"><em>cmdDataRate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const&#160;</td>
          <td class="paramname"><em>cmdParam</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>paramSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>paramTxfrWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a>&#160;</td>
          <td class="paramname"><em>paramDataRate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slaveSelect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>completeTxfr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function transmits a command byte followed by a parameter which is typically an address field. </p>
<p>The transfer is implemented using the TX FIFO. This function also asserts the slave select line. A command to a memory device generally starts with a command byte transmission. This function sets up the slave lines for the rest of the command structure. The <a class="el" href="group__group__smif__low__level__functions.html#gaff84f79f1cb122fa25eb03f73b496e63">Cy_SMIF_TransmitCommand_Ext</a> is called before <a class="el" href="group__group__smif__low__level__functions.html#ga7c413cce1934b7d3e373f7f1e2270940">Cy_SMIF_TransmitData_Ext</a> or <a class="el" href="group__group__smif__low__level__functions.html#ga2762a9749d61af95370c669561c8f042">Cy_SMIF_ReceiveData_Ext</a> is called. When enabled, the completeTxfr parameter in the function will de-assert the slave select line at the end of the function execution.</p>
<dl class="section note"><dt>Note</dt><dd>This function blocks until all the command and associated parameters have been transmitted over the SMIF block or timeout expire.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">cmd</td><td>The command byte to be transmitted.</td></tr>
    <tr><td class="paramname">isCommand2byte</td><td>isCommand2byte</td></tr>
    <tr><td class="paramname">cmdTxfrWidth</td><td>The width of command byte transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">cmdDataRate</td><td>cmdDataRate</td></tr>
    <tr><td class="paramname">cmdParam</td><td>This is the pointer to an array that has bytes to be transmitted after the command byte. Typically, this field has the address bytes associated with the memory command.</td></tr>
    <tr><td class="paramname">paramSize</td><td>The size of the cmdParam array.</td></tr>
    <tr><td class="paramname">paramTxfrWidth</td><td>The width of parameter transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">paramDataRate</td><td>paramDataRate</td></tr>
    <tr><td class="paramname">slaveSelect</td><td>Denotes the number of the slave device to which the transfer is made. (0, 1, 2 or 4 - the bit defines which slave to enable) Two-bit enable is possible only for the Double Quad SPI mode.</td></tr>
    <tr><td class="paramname">completeTxfr</td><td>Specifies if the slave select line must be de-asserted after transferring the last byte in the parameter array. Typically, this field is set to 0 when this function succeed through <a class="el" href="group__group__smif__low__level__functions.html#ga7c413cce1934b7d3e373f7f1e2270940">Cy_SMIF_TransmitData_Ext</a> or <a class="el" href="group__group__smif__low__level__functions.html#ga2762a9749d61af95370c669561c8f042">Cy_SMIF_ReceiveData_Ext</a>.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmit.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B, CAT1C and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga7c413cce1934b7d3e373f7f1e2270940"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c413cce1934b7d3e373f7f1e2270940">&#9670;&nbsp;</a></span>Cy_SMIF_TransmitData_Ext()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_TransmitData_Ext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>txBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>transferWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a>&#160;</td>
          <td class="paramname"><em>dataDataRate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a>&#160;</td>
          <td class="paramname"><em>TxCmpltCb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to transmit data using the SMIF interface. </p>
<p>This function uses the TX Data FIFO to implement the transmit functionality. The function sets up an interrupt to trigger the TX Data FIFO and uses that interrupt to fill the TX Data FIFO until all the data is transmitted. At the end of the transmission, the TxCmpltCb is executed.</p>
<dl class="section note"><dt>Note</dt><dd>This function is to be preceded by <a class="el" href="group__group__smif__low__level__functions.html#gaff84f79f1cb122fa25eb03f73b496e63">Cy_SMIF_TransmitCommand_Ext</a> where the slave select is selected. The slave is de-asserted at the end of a transmit. The function triggers the transfer and the transfer itself utilizes the interrupt for FIFO operations in the background. Thus, frequent interrupts will be executed after this function is triggered. Since this API is non-blocking and sets up the interrupt to act on the data FIFO, ensure there will be no another instance of the function called before the current instance has completed execution.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">txBuffer</td><td>The pointer to the data to be transferred. If this pointer is a NULL, then the function does not enable the interrupt. This use case is typically used when the FIFO is handled outside the interrupt and is managed in either a polling-based code or a DMA. The user would handle the FIFO management in a DMA or a polling-based code.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the user provides a NULL pointer in this function and does not handle the FIFO transaction, this could either stall or timeout the operation. The transfer statuses returned by <a class="el" href="group__group__smif__low__level__functions.html#ga90da2709c1d2a6967101a05e0eb27b08">Cy_SMIF_GetTransferStatus</a> are no longer valid.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of txBuffer. Must be &gt; 0 and not greater than 65536.</td></tr>
    <tr><td class="paramname">transferWidth</td><td>The width of transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">dataDataRate</td><td>dataDataRate</td></tr>
    <tr><td class="paramname">TxCmpltCb</td><td>The callback executed at the end of a transmission. NULL interpreted as no callback.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of a transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B, CAT1C and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga44f065c16a2388b7020b15310b47724f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga44f065c16a2388b7020b15310b47724f">&#9670;&nbsp;</a></span>Cy_SMIF_TransmitDataBlocking_Ext()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_TransmitDataBlocking_Ext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>txBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>transferWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a>&#160;</td>
          <td class="paramname"><em>dataDataRate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function implements the transmit data phase in the memory command. </p>
<p>The data is transmitted using the Tx Data FIFO and the TX_COUNT command. This function blocks until completion. The function does not use the interrupts and will use CPU to monitor the FIFO status and move data accordingly. The function returns only on completion.</p>
<dl class="section note"><dt>Note</dt><dd>Since this API is blocking, ensure that other transfers finished and it will not be called during non-blocking transfer.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">txBuffer</td><td>The pointer to the data to be transferred. If this pointer is a NULL, then the function does not fill TX_FIFO. The user would handle the FIFO management in a DMA or a polling-based code.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the user provides a NULL pointer in this function and does not handle the FIFO transaction, this could either stall or timeout the operation. The transfer statuses returned by <a class="el" href="group__group__smif__low__level__functions.html#ga90da2709c1d2a6967101a05e0eb27b08">Cy_SMIF_GetTransferStatus</a> are no longer valid.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of txBuffer. Must be &gt; 0 and not greater than 65536.</td></tr>
    <tr><td class="paramname">transferWidth</td><td>The width of transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">dataDataRate</td><td>dataDataRate</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of a transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B, CAT1C and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga2762a9749d61af95370c669561c8f042"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2762a9749d61af95370c669561c8f042">&#9670;&nbsp;</a></span>Cy_SMIF_ReceiveData_Ext()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_ReceiveData_Ext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>transferWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a>&#160;</td>
          <td class="paramname"><em>dataRate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a>&#160;</td>
          <td class="paramname"><em>RxCmpltCb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function implements the receive data phase in the memory command. </p>
<p>The data is received into the RX Data FIFO using the RX_COUNT command. This function sets up the interrupt to trigger on the RX Data FIFO level, and the data is fetched from the RX Data FIFO to the rxBuffer as it gets filled. This function does not block until completion. The completion will trigger the call back function.</p>
<dl class="section note"><dt>Note</dt><dd>This function is to be preceded by <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand</a>. The slave select is de-asserted at the end of the receive. The function triggers the transfer and the transfer itself utilizes the interrupt for FIFO operations in the background. Thus, frequent interrupts will be executed after this function is triggered. This API is non-blocking and sets up the interrupt to act on the data FIFO, ensure there will be no another instance of the function called before the current instance has completed execution.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">rxBuffer</td><td>The pointer to the variable where the receive data is stored. If this pointer is a NULL, then the function does not enable the interrupt. This use case is typically used when the FIFO is handled outside the interrupt and is managed in either a polling-based code or a DMA. The user would handle the FIFO management in a DMA or a polling-based code.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the user provides a NULL pointer in this function and does not handle the FIFO transaction, this could either stall or timeout the operation. The transfer statuses returned by <a class="el" href="group__group__smif__low__level__functions.html#ga90da2709c1d2a6967101a05e0eb27b08">Cy_SMIF_GetTransferStatus</a> are no longer valid.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of data to be received. Must be &gt; 0 and not greater than 65536.</td></tr>
    <tr><td class="paramname">transferWidth</td><td>The width of transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">dataRate</td><td>dataRate</td></tr>
    <tr><td class="paramname">RxCmpltCb</td><td>The callback executed at the end of a reception. NULL interpreted as no callback.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of a reception.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Check <a class="el" href="group__group__smif.html#group_smif_usage_rules">Rules for PSoC6 QSPI/SMIF Block Usage</a> for any usage restriction</dd>
<dd>
This API is available for CAT1B, CAT1C and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga18fc5b9f3fba366db39a16018dae9a64"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga18fc5b9f3fba366db39a16018dae9a64">&#9670;&nbsp;</a></span>Cy_SMIF_ReceiveDataBlocking_Ext()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_ReceiveDataBlocking_Ext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>transferWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a>&#160;</td>
          <td class="paramname"><em>dataRate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function implements the receive data phase in the memory command. </p>
<p>The data is received into the RX Data FIFO using the RX_COUNT command. This function blocks until completion. The function does not use the interrupts and will use CPU to monitor the FIFO status and move data accordingly. The function returns only on completion.</p>
<dl class="section note"><dt>Note</dt><dd>This function is to be preceded by <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand</a>. The slave select is de-asserted at the end of the receive. Ensure there is no another transfers.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">rxBuffer</td><td>The pointer to the variable where the receive data is stored. If this pointer is a NULL, then the function does not enable the interrupt. This use case is typically used when the FIFO is handled outside the interrupt and is managed in either a polling-based code or a DMA. The user would handle the FIFO management in a DMA or a polling-based code.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the user provides a NULL pointer in this function and does not handle the FIFO transaction, this could either stall or timeout the operation. The transfer statuses returned by <a class="el" href="group__group__smif__low__level__functions.html#ga90da2709c1d2a6967101a05e0eb27b08">Cy_SMIF_GetTransferStatus</a> are no longer valid.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of data to be received. Must be &gt; 0 and not greater than 65536.</td></tr>
    <tr><td class="paramname">transferWidth</td><td>The width of transfer <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>.</td></tr>
    <tr><td class="paramname">dataRate</td><td>dataRate</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of a reception.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Check <a class="el" href="group__group__smif.html#group_smif_usage_rules">Rules for PSoC6 QSPI/SMIF Block Usage</a> for any usage restriction</dd>
<dd>
This API is available for CAT1B, CAT1C and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga3be6006b4c0c72703db49623734eccd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3be6006b4c0c72703db49623734eccd6">&#9670;&nbsp;</a></span>Cy_SMIF_SendDummyCycles_Ext()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_SendDummyCycles_Ext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>transferWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a>&#160;</td>
          <td class="paramname"><em>dataRate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>cycles</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends dummy-clock cycles. </p>
<p>The data lines are tri-stated during the dummy cycles.</p>
<dl class="section note"><dt>Note</dt><dd>This function is to be preceded by <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">transferWidth</td><td></td></tr>
    <tr><td class="paramname">dataRate</td><td></td></tr>
    <tr><td class="paramname">cycles</td><td>The number of dummy cycles. Must be &gt; 0 and not greater than 65536.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of dummy cycles sending.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B, CAT1C and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga2534063268320780e2b2e8d10221fafb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2534063268320780e2b2e8d10221fafb">&#9670;&nbsp;</a></span>Cy_SMIF_SendDummyCycles_With_RWDS()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_SendDummyCycles_With_RWDS </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>read_rwds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>refresh_indicator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>cycles</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends dummy-clock cycles and observes additional input data signal RWDS. </p>
<p>The data lines are tri-stated during the dummy cycles.</p>
<dl class="section note"><dt>Note</dt><dd>This function is to be preceded by <a class="el" href="group__group__smif__low__level__functions.html#gaff84f79f1cb122fa25eb03f73b496e63">Cy_SMIF_TransmitCommand_Ext</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">read_rwds</td><td>Indicates whether it is read/write transaction. "true" in case of read. "false" in case of write.</td></tr>
    <tr><td class="paramname">refresh_indicator</td><td>Dummy cycles are doubled when RWDS refresh indicator is high during CA cycle. (HyperRAM variable latency mode)</td></tr>
    <tr><td class="paramname">cycles</td><td>The number of dummy cycles. Must be &gt; 0 and not greater than 65536.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of dummy cycles sending.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1B, CAT1C and CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga194756a68fde927d8b6bbc5255177414"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga194756a68fde927d8b6bbc5255177414">&#9670;&nbsp;</a></span>Cy_SMIF_DeviceTransfer_SetMergeTimeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_DeviceTransfer_SetMergeTimeout </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slave</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga58cf90a88ebb49c269bc67295d6e5cc3">cy_en_smif_merge_timeout_t</a>&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function enables merging continuous transfers over XIP so that the overhead of transferring command and address will not be there for reading consecutive addresses. </p>
<p>User can specify a timeout value to specify how long the device would be selected waiting for next incremental address read.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slave</td><td>Holds the slave select line for which merge should be enabled.</td></tr>
    <tr><td class="paramname">timeout</td><td>(see <a class="el" href="group__group__smif__enums.html#ga58cf90a88ebb49c269bc67295d6e5cc3">cy_en_smif_merge_timeout_t</a>)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This API is not supported on CAT1A devices. </dd>
<dd>
External memory should also support this mode of transfer.</dd></dl>
<div class="fragment"><div class="line">    <a class="code" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveSelect = <a class="code" href="group__group__smif__enums.html#ggad776a0db9224477ab865254a32d9e312ae942102fb4b1a03a13ca8950b607520d">CY_SMIF_SLAVE_SELECT_0</a>;</div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga957f49ed7cf091e9b9d736ee589f2583">Cy_SMIF_SetMode</a>(SMIF, <a class="code" href="group__group__smif__enums.html#gga2baa7c37d2cedf2e2c837facc753ab5da562131834e2b77b141db45354e8584ec">CY_SMIF_MEMORY</a>);</div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga28f06f761c260849fa8e37d7a3f858dc">Cy_SMIF_CacheEnable</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggaf7e001d5a1821a56324e8898913b21efa629d9c56adb3c14ac83a486fe57afa84">CY_SMIF_CACHE_BOTH</a>);</div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga0ff445110c019e30b942fb87878b32c7">Cy_SMIF_CachePrefetchingEnable</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggaf7e001d5a1821a56324e8898913b21efa629d9c56adb3c14ac83a486fe57afa84">CY_SMIF_CACHE_BOTH</a>);</div><div class="line">    <span class="comment">// If more than 1 cycle merge time accepted, there will be long CS# low duration when burst reading.</span></div><div class="line">    <span class="comment">// It may cause error because Low/High ratio of CLK should be around 50/50 during reading because of Memory device restriction.</span></div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga194756a68fde927d8b6bbc5255177414">Cy_SMIF_DeviceTransfer_SetMergeTimeout</a>(SMIF, slaveSelect,CY_SMIF_MERGE_TIMEOUT_1_CYCLE);</div><div class="line">    <span class="keyword">volatile</span> CY_SMIF_FLASHDATA* pHyperFlashBaseAddr = (CY_SMIF_FLASHDATA*)(CY_XIP_BASE);</div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga6d2d7ef86eccf2e7a3a2f760208bea0b">Cy_SMIF_DeviceTransfer_ClearMergeTimeout</a>(SMIF, slaveSelect);</div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga72240c0ce8307c50b65c4fca45c9cd30">Cy_SMIF_CacheInvalidate</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggaf7e001d5a1821a56324e8898913b21efa629d9c56adb3c14ac83a486fe57afa84">CY_SMIF_CACHE_BOTH</a>);</div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#gacb0c1e80c19ef607a1efc70df6818ccb">Cy_SMIF_CacheDisable</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggaf7e001d5a1821a56324e8898913b21efa629d9c56adb3c14ac83a486fe57afa84">CY_SMIF_CACHE_BOTH</a>);</div><div class="line">    (void)pHyperFlashBaseAddr;</div></div><!-- fragment -->
</div>
</div>
<a id="ga6d2d7ef86eccf2e7a3a2f760208bea0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6d2d7ef86eccf2e7a3a2f760208bea0b">&#9670;&nbsp;</a></span>Cy_SMIF_DeviceTransfer_ClearMergeTimeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_DeviceTransfer_ClearMergeTimeout </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slave</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function disables continuous transfer merging. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slave</td><td>Holds the slave select line for which merge should be disabled.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This API is not supported on CAT1A devices. </dd>
<dd>
External memory should also support this mode of transfer.</dd></dl>
<div class="fragment"><div class="line">    <a class="code" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveSelect = <a class="code" href="group__group__smif__enums.html#ggad776a0db9224477ab865254a32d9e312ae942102fb4b1a03a13ca8950b607520d">CY_SMIF_SLAVE_SELECT_0</a>;</div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga957f49ed7cf091e9b9d736ee589f2583">Cy_SMIF_SetMode</a>(SMIF, <a class="code" href="group__group__smif__enums.html#gga2baa7c37d2cedf2e2c837facc753ab5da562131834e2b77b141db45354e8584ec">CY_SMIF_MEMORY</a>);</div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga28f06f761c260849fa8e37d7a3f858dc">Cy_SMIF_CacheEnable</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggaf7e001d5a1821a56324e8898913b21efa629d9c56adb3c14ac83a486fe57afa84">CY_SMIF_CACHE_BOTH</a>);</div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga0ff445110c019e30b942fb87878b32c7">Cy_SMIF_CachePrefetchingEnable</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggaf7e001d5a1821a56324e8898913b21efa629d9c56adb3c14ac83a486fe57afa84">CY_SMIF_CACHE_BOTH</a>);</div><div class="line">    <span class="comment">// If more than 1 cycle merge time accepted, there will be long CS# low duration when burst reading.</span></div><div class="line">    <span class="comment">// It may cause error because Low/High ratio of CLK should be around 50/50 during reading because of Memory device restriction.</span></div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga194756a68fde927d8b6bbc5255177414">Cy_SMIF_DeviceTransfer_SetMergeTimeout</a>(SMIF, slaveSelect,CY_SMIF_MERGE_TIMEOUT_1_CYCLE);</div><div class="line">    <span class="keyword">volatile</span> CY_SMIF_FLASHDATA* pHyperFlashBaseAddr = (CY_SMIF_FLASHDATA*)(CY_XIP_BASE);</div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga6d2d7ef86eccf2e7a3a2f760208bea0b">Cy_SMIF_DeviceTransfer_ClearMergeTimeout</a>(SMIF, slaveSelect);</div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga72240c0ce8307c50b65c4fca45c9cd30">Cy_SMIF_CacheInvalidate</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggaf7e001d5a1821a56324e8898913b21efa629d9c56adb3c14ac83a486fe57afa84">CY_SMIF_CACHE_BOTH</a>);</div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#gacb0c1e80c19ef607a1efc70df6818ccb">Cy_SMIF_CacheDisable</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggaf7e001d5a1821a56324e8898913b21efa629d9c56adb3c14ac83a486fe57afa84">CY_SMIF_CACHE_BOTH</a>);</div><div class="line">    (void)pHyperFlashBaseAddr;</div></div><!-- fragment -->
</div>
</div>
<a id="ga7a547a8e9db987215d7be94e25688ca1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7a547a8e9db987215d7be94e25688ca1">&#9670;&nbsp;</a></span>Cy_SMIF_Set_DelayTapSel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Set_DelayTapSel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>tapSel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets delay tap number for the SMIF master clock which is common for all memory devices connected. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block or SMIF_DEVICE block registers.</td></tr>
    <tr><td class="paramname">tapSel</td><td>delay tap selection to be set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>status (see <a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>).</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1C and CAT1D devices.</dd></dl>
<div class="fragment"><div class="line">    uint8_t tapSel_set = 8U;</div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> == <a class="code" href="group__group__smif__low__level__functions.html#ga7a547a8e9db987215d7be94e25688ca1">Cy_SMIF_Set_DelayTapSel</a>(SMIF, tapSel))</div><div class="line">    {</div><div class="line">        uint8_t tap_sel_get = <a class="code" href="group__group__smif__low__level__functions.html#ga810c01bc60e2eafeb53a7c9cfa0b7115">Cy_SMIF_Get_DelayTapSel</a>(SMIF);</div><div class="line">        <span class="keywordflow">if</span>(tap_sel_get != tapSel_set)</div><div class="line">        {</div><div class="line">            <span class="comment">/* Insert error handling */</span></div><div class="line">        }</div><div class="line">    }</div><div class="line">    <span class="keywordflow">else</span></div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment -->
</div>
</div>
<a id="ga810c01bc60e2eafeb53a7c9cfa0b7115"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga810c01bc60e2eafeb53a7c9cfa0b7115">&#9670;&nbsp;</a></span>Cy_SMIF_Get_DelayTapSel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t Cy_SMIF_Get_DelayTapSel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function returns delay tap number which has been set for the SMIF. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block or SMIF_DEVICE block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>read tap selection</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1C and CAT1D devices.</dd></dl>
<div class="fragment"><div class="line">    uint8_t tapSel_set = 8U;</div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> == <a class="code" href="group__group__smif__low__level__functions.html#ga7a547a8e9db987215d7be94e25688ca1">Cy_SMIF_Set_DelayTapSel</a>(SMIF, tapSel))</div><div class="line">    {</div><div class="line">        uint8_t tap_sel_get = <a class="code" href="group__group__smif__low__level__functions.html#ga810c01bc60e2eafeb53a7c9cfa0b7115">Cy_SMIF_Get_DelayTapSel</a>(SMIF);</div><div class="line">        <span class="keywordflow">if</span>(tap_sel_get != tapSel_set)</div><div class="line">        {</div><div class="line">            <span class="comment">/* Insert error handling */</span></div><div class="line">        }</div><div class="line">    }</div><div class="line">    <span class="keywordflow">else</span></div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment -->
</div>
</div>
<a id="gaf94a776664420fda15c8aa4a87b6db7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf94a776664420fda15c8aa4a87b6db7e">&#9670;&nbsp;</a></span>Cy_SMIF_Set_Sdl_DelayTapSel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Set_Sdl_DelayTapSel </td>
          <td>(</td>
          <td class="paramtype">SMIF_CORE_DEVICE_Type *&#160;</td>
          <td class="paramname"><em>smif_device_base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>tapSel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets the SDL (slave clock) delay tap number for the SMIF (common for all its devices). </p>
<p>It sets both the positive and negative taps to the same value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">smif_device_base</td><td>Holds the base address of the SMIF_DEVICE block registers.</td></tr>
    <tr><td class="paramname">tapSel</td><td>positive and negative delay tap selection to be set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>status (see <a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>). </dd></dl>

</div>
</div>
<a id="ga318b7c99ac2ba33e833cb4a0ab675e17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga318b7c99ac2ba33e833cb4a0ab675e17">&#9670;&nbsp;</a></span>Cy_SMIF_Disable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE void Cy_SMIF_Disable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disables the operation of the SMIF block. </p>
<p>The SMIF block can be disabled only when it is not in the active state. Use the <a class="el" href="group__group__smif__low__level__functions.html#ga58e965697047847ce906329eb6b5341c" title="This function provides the status of the IP block (False - not busy, True - busy). ">Cy_SMIF_BusyCheck()</a> API to check it before calling this API. Make sure the clock supplied to SMIF block is also disabled before calling this API using <a class="el" href="group__group__sysclk__clk__hf__funcs.html#gaaa60ae6f69c8a594756a219ac8891358">Cy_SysClk_ClkHfDisable</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gae74985772e86b44ab99a95ea467f6245"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae74985772e86b44ab99a95ea467f6245">&#9670;&nbsp;</a></span>Cy_SMIF_SetInterruptMask()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE void Cy_SMIF_SetInterruptMask </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>interrupt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to set an interrupt mask for the SMIF Interrupt. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">interrupt</td><td>This is the mask for different source options that can be masked. See <a class="el" href="group__group__smif__macros__isr.html">Interrupt Macros</a> for possible values. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga83bbab71bc76fc372b4c8ad363e2512d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga83bbab71bc76fc372b4c8ad363e2512d">&#9670;&nbsp;</a></span>Cy_SMIF_GetInterruptMask()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE uint32_t Cy_SMIF_GetInterruptMask </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read an interrupt mask for the SMIF Interrupt. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns the mask set for the SMIF interrupt. </dd></dl>

</div>
</div>
<a id="ga6eba5a1edd402a8170d0d5649dda98c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6eba5a1edd402a8170d0d5649dda98c4">&#9670;&nbsp;</a></span>Cy_SMIF_GetInterruptStatusMasked()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE uint32_t Cy_SMIF_GetInterruptStatusMasked </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read an active masked interrupt. </p>
<p>This function can be used in the interrupt service-routine to find which source triggered the interrupt.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a word with bits set at positions corresponding to the interrupts triggered in the system. </dd></dl>

</div>
</div>
<a id="ga412a309c2929869dea85c59a62067085"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga412a309c2929869dea85c59a62067085">&#9670;&nbsp;</a></span>Cy_SMIF_GetInterruptStatus()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE uint32_t Cy_SMIF_GetInterruptStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read an active interrupt. </p>
<p>This status is the unmasked result, so will also show interrupts that will not generate active interrupts.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a word with bits set at positions corresponding to the interrupts triggered in the system. </dd></dl>

</div>
</div>
<a id="gadb165119cb003e0e69d6fcf39be65033"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadb165119cb003e0e69d6fcf39be65033">&#9670;&nbsp;</a></span>Cy_SMIF_SetInterrupt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE void Cy_SMIF_SetInterrupt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>interrupt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to set an interrupt source. </p>
<p>This function can be used to activate interrupts through the software.</p>
<dl class="section note"><dt>Note</dt><dd>Interrupt sources set using this interrupt will generate interrupts only if they are not masked.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">interrupt</td><td>An encoded integer with a bit set corresponding to the interrupt to be triggered. See <a class="el" href="group__group__smif__macros__isr.html">Interrupt Macros</a> for possible values. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga728aaee38b9821b954d3a56e53787fb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga728aaee38b9821b954d3a56e53787fb1">&#9670;&nbsp;</a></span>Cy_SMIF_ClearInterrupt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE void Cy_SMIF_ClearInterrupt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>interrupt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to clear an interrupt source. </p>
<p>This function can be used in the user code to clear all pending interrupts.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">interrupt</td><td>An encoded integer with a bit set corresponding to the interrupt that must be cleared. See <a class="el" href="group__group__smif__macros__isr.html">Interrupt Macros</a> for possible values. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gac9b71a3308f1a654b2fc583033761a7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac9b71a3308f1a654b2fc583033761a7a">&#9670;&nbsp;</a></span>Cy_SMIF_SetTxFifoTriggerLevel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE void Cy_SMIF_SetTxFifoTriggerLevel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>level</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to set a trigger level for the TX FIFO. </p>
<p>This value must be an integer between 0 and 7. For the normal mode only. The triggering is active when TX_DATA_FIFO_STATUS &lt;= level.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">level</td><td>The trigger level to set (0-8). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gac31d93c962f0ff359932ac8ad6a4baec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac31d93c962f0ff359932ac8ad6a4baec">&#9670;&nbsp;</a></span>Cy_SMIF_SetRxFifoTriggerLevel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE void Cy_SMIF_SetRxFifoTriggerLevel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>level</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to set a trigger level for the RX FIFO. </p>
<p>This value must be an integer between 0 and 7. For the normal mode only. The triggering is active when RX_DATA_FIFOSTATUS &gt; level.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">level</td><td>The trigger level to set(0-8). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga0e0da7a14fb7bdc9ee054f87239b38e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e0da7a14fb7bdc9ee054f87239b38e7">&#9670;&nbsp;</a></span>Cy_SMIF_GetCmdFifoStatus()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE uint32_t Cy_SMIF_GetCmdFifoStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read the status of the CMD FIFO. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns the number of the entries in the CMD FIFO. </dd></dl>

</div>
</div>
<a id="ga10662c147b39a1b71a2f2221b0e3f59f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga10662c147b39a1b71a2f2221b0e3f59f">&#9670;&nbsp;</a></span>Cy_SMIF_GetTxFifoStatus()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE uint32_t Cy_SMIF_GetTxFifoStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read the status of the TX FIFO. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns the number of the entries in the TX FIFO. </dd></dl>

</div>
</div>
<a id="ga54e4c5a29449fabe546b4770061f31b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga54e4c5a29449fabe546b4770061f31b7">&#9670;&nbsp;</a></span>Cy_SMIF_GetRxFifoStatus()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE uint32_t Cy_SMIF_GetRxFifoStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to read the status of the RX FIFO. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns the number of the entries in the RX FIFO. </dd></dl>

</div>
</div>
<a id="ga91a32005b94591adb8fd7daa1068ddbc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga91a32005b94591adb8fd7daa1068ddbc">&#9670;&nbsp;</a></span>Cy_SMIF_Encrypt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Encrypt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>data</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Uses the Encryption engine to create an encrypted result when the input, key and data arrays are provided. </p>
<p>The AES-128 encryption of the address with the key, fetching the result and XOR with the data array are all done in the function. The operational scheme is the following: data = XOR(AES128(address, key), data) Decryption is done using the input data-array identically to the encryption. In the XIP mode, encryption and decryption are done without calling this function. The operational scheme in the XIP mode is the same. The address parameter in the XIP mode equals the actual address in the PSoC memory map. The SMIF encryption engine is designed for code storage. For data storage, the encryption key can be changed. For sensitive data, the Crypto block is used.</p>
<dl class="section note"><dt>Note</dt><dd>The API does not have access to the encryption key. The key must be placed in the register using <a class="el" href="group__group__smif__low__level__functions.html#ga49e4163f4131d692405b9e9430ac61b6">Cy_SMIF_SetCryptoKey()</a> before calling this API. The crypto routine that can access the key storage area is recommended. This crypto routine is typically a protection context 0 function.</dd>
<dd>
This is a blocking API. The API waits for encryption completion. Will exit if a timeout is set (not equal to 0) and expired.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">address</td><td>The address that gets encrypted is a masked 16-byte block address. The 32-bit address with the last 4 bits masked is placed as the last 4 bytes in the 128-bit input. The rest of the higher bit for the 128 bits are padded zeros by default. PA[127:0]: PA[3:0] = 0 PA[7:4] = ADDR[7:4]. PA[15:8] = ADDR[15:8]. PA[23:16] = ADDR[23:16]. PA[31:24] = ADDR[31:24]. The other twelve of the sixteen plain text address bytes of PA[127:0] are "0" by default. User can initialize PA[127:32] with <a class="el" href="group__group__smif__low__level__functions.html#gac43fe9363025064cfa881b2bed68c645">Cy_SMIF_SetCryptoIV()</a>.</td></tr>
    <tr><td class="paramname">data</td><td>This is the location where the input data-array is passed while the function is called. This array gets populated with the result after encryption is completed.</td></tr>
    <tr><td class="paramname">size</td><td>Provides a size of the array.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmit.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
</ul>
</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario:  Encrypt data in the txBuffer[] before writing data into the memory at the address=0x2000. */</span></div><div class="line"></div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIF_context = {0};  <span class="comment">/* This is a shared context structure.</span></div><div class="line"><span class="comment">                                               * It must be global</span></div><div class="line"><span class="comment">                                               */</span></div><div class="line"></div><div class="line"><span class="preprocessor">    #define MEMTEST_AES_KEY_SIZE (16U)   </span><span class="comment">/* The AES key length */</span><span class="preprocessor"></span></div><div class="line"><span class="preprocessor">    #define INIT_VECTOR_SIZE     (12U)   </span><span class="comment">/* Initialization vector length */</span><span class="preprocessor"></span></div><div class="line"><span class="preprocessor">    #define PACKET_SIZE          (32U)   </span><span class="comment">/* The memory Read/Write packet */</span><span class="preprocessor"></span></div><div class="line"></div><div class="line">    <span class="comment">/* Data to encrypt */</span></div><div class="line">    uint8_t txBuffer[PACKET_SIZE] = {1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U,</div><div class="line">                                     9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U,</div><div class="line">                                     17U, 18U, 19U, 20U, 21U, 22U, 23U, 24U,</div><div class="line">                                     25U, 26U, 27U, 28U, 29U, 30U, 31U, 32U};</div><div class="line">    uint32_t address = 0x2000UL;  <span class="comment">/* The address to write data to  */</span></div><div class="line"></div><div class="line">    <span class="comment">/* The AES key.</span></div><div class="line"><span class="comment">    * Writing of the AES key should be from secure area of the code</span></div><div class="line"><span class="comment">    */</span></div><div class="line">    uint8_t key[MEMTEST_AES_KEY_SIZE] = {0x54U, 0x68U, 0x61U, 0x74U, 0x73U, 0x20U, 0x6DU, 0x79U,</div><div class="line">                                         0x20U, 0x4BU, 0x75U, 0x6EU, 0x67U, 0x20U, 0x46U, 0x75U};</div><div class="line"></div><div class="line">    uint8_t init_vector[INIT_VECTOR_SIZE] = {0x1FU, 0x34U, 0x65U, 0x94U, 0x73U, 0x24U, 0x1DU, 0x89U,</div><div class="line">                                         0x25U, 0x4AU, 0x77U, 0x4DU};</div><div class="line">    <span class="comment">/* Set the crypto key. */</span></div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga49e4163f4131d692405b9e9430ac61b6">Cy_SMIF_SetCryptoKey</a>(SMIF, (uint32_t *)key);</div><div class="line"></div><div class="line">    <span class="comment">/* Set Initialization Vector */</span></div><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#gac43fe9363025064cfa881b2bed68c645">Cy_SMIF_SetCryptoIV</a>(SMIF, (uint32_t *)init_vector);</div><div class="line"></div><div class="line">    <span class="comment">/* Encrypt data in txBuffer */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__low__level__functions.html#ga91a32005b94591adb8fd7daa1068ddbc">Cy_SMIF_Encrypt</a>(SMIF, address, txBuffer, <span class="keyword">sizeof</span>(txBuffer), &amp;SMIF_context))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div><div class="line">    <span class="comment">/* The second call of Cy_SMIF_Encrypt() decrypts data in txBuffer */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__low__level__functions.html#ga91a32005b94591adb8fd7daa1068ddbc">Cy_SMIF_Encrypt</a>(SMIF, address, txBuffer, <span class="keyword">sizeof</span>(txBuffer), &amp;SMIF_context))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga58e965697047847ce906329eb6b5341c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga58e965697047847ce906329eb6b5341c">&#9670;&nbsp;</a></span>Cy_SMIF_BusyCheck()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE bool Cy_SMIF_BusyCheck </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> const *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function provides the status of the IP block (False - not busy, True - busy). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an IP block status. </dd></dl>

</div>
</div>
<a id="gaedbec6f968745b8f594dd4b32e91ceba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaedbec6f968745b8f594dd4b32e91ceba">&#9670;&nbsp;</a></span>Cy_SMIF_Interrupt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE void Cy_SMIF_Interrupt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The Interrupt Service Routine for the SMIF. </p>
<p>The interrupt code will be responsible for the FIFO operations on FIFO interrupts during ongoing transfers. The user must place a call to this interrupt function in the interrupt routine corresponding to the interrupt attached to the SMIF. If the user does not do this, will break: the functionality of all the API functions in the SMIF driver that use SMIF interrupts to affect transfers.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">context</td><td>Passes a configuration structure that contains the transfer parameters of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Global Variables</dt><dd><ul>
<li>context-&gt;txBufferAddress - The pointer to the data to be transferred.</li>
<li>context-&gt;txBufferSize - The size of txBuffer.</li>
<li>context-&gt;txBufferCounter - The number of data entries left to be transferred.</li>
</ul>
</dd></dl>
<p>All the Global variables described above are used when the Software Buffer is used. </p>

</div>
</div>
<a id="ga28f06f761c260849fa8e37d7a3f858dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga28f06f761c260849fa8e37d7a3f858dc">&#9670;&nbsp;</a></span>Cy_SMIF_CacheEnable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_CacheEnable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a>&#160;</td>
          <td class="paramname"><em>cacheType</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to enable the fast cache, the slow cache or both. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">cacheType</td><td>Holds the type of the cache to be modified. <a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of function completion.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="gacb0c1e80c19ef607a1efc70df6818ccb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacb0c1e80c19ef607a1efc70df6818ccb">&#9670;&nbsp;</a></span>Cy_SMIF_CacheDisable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_CacheDisable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a>&#160;</td>
          <td class="paramname"><em>cacheType</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to disable the fast cache, the slow cache or both. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">cacheType</td><td>Holds the type of the cache to be modified. <a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of function completion.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga0ff445110c019e30b942fb87878b32c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0ff445110c019e30b942fb87878b32c7">&#9670;&nbsp;</a></span>Cy_SMIF_CachePrefetchingEnable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_CachePrefetchingEnable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a>&#160;</td>
          <td class="paramname"><em>cacheType</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to enable pre-fetching for the fast cache, the slow cache or both. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">cacheType</td><td>Holds the type of the cache to be modified. <a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of function completion.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="gabbb34fe2a90c311a2e1fa23c66a21c81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabbb34fe2a90c311a2e1fa23c66a21c81">&#9670;&nbsp;</a></span>Cy_SMIF_CachePrefetchingDisable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_CachePrefetchingDisable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a>&#160;</td>
          <td class="paramname"><em>cacheType</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to disable pre-fetching for the fast cache, the slow cache or both. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">cacheType</td><td>Holds the type of the cache to be modified. <a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of function completion.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga72240c0ce8307c50b65c4fca45c9cd30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72240c0ce8307c50b65c4fca45c9cd30">&#9670;&nbsp;</a></span>Cy_SMIF_CacheInvalidate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_CacheInvalidate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a>&#160;</td>
          <td class="paramname"><em>cacheType</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to invalidate/clear the fast cache, the slow cache or both. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">cacheType</td><td>Holds the type of the cache to be modified. <a class="el" href="group__group__smif__enums.html#gaf7e001d5a1821a56324e8898913b21ef">cy_en_smif_cache_t</a></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of function completion.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga49e4163f4131d692405b9e9430ac61b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49e4163f4131d692405b9e9430ac61b6">&#9670;&nbsp;</a></span>Cy_SMIF_SetCryptoKey()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_SetCryptoKey </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the AES-128 encryption key into SMIF crypto registers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">key</td><td>An array containing 128 bit crypto key: uint32_t key[4]. The least significant word first. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gac43fe9363025064cfa881b2bed68c645"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac43fe9363025064cfa881b2bed68c645">&#9670;&nbsp;</a></span>Cy_SMIF_SetCryptoIV()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_SetCryptoIV </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>nonce</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the 96 bit initialization vector (nonce) into SMIF crypto registers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">nonce</td><td>An array containing 96 bit initialization vector (nonce) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gab65ee303c9b39e383297dae50e1efba1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab65ee303c9b39e383297dae50e1efba1">&#9670;&nbsp;</a></span>Cy_SMIF_SetCryptoEnable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_SetCryptoEnable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slaveId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enables SMIF encryption. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slaveId</td><td>salve select line to indicate the device on which encryption should be enabled.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Please ensure cache is disabled using <a class="el" href="group__group__smif__low__level__functions.html#gacb0c1e80c19ef607a1efc70df6818ccb">Cy_SMIF_CacheDisable</a> or invalidated using <a class="el" href="group__group__smif__low__level__functions.html#ga72240c0ce8307c50b65c4fca45c9cd30">Cy_SMIF_CacheInvalidate</a> or any other system level cache to be cleared so that the next read/execute from flash operation results in correct data. </dd></dl>

</div>
</div>
<a id="gad5d21a6411e7b0a176394b39d54c6eeb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad5d21a6411e7b0a176394b39d54c6eeb">&#9670;&nbsp;</a></span>Cy_SMIF_SetCryptoDisable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_SetCryptoDisable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slaveId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disables SMIF encryption. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slaveId</td><td>salve select line to indicate the device on which encryption should be disabled.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Please ensure cache is disabled using <a class="el" href="group__group__smif__low__level__functions.html#gacb0c1e80c19ef607a1efc70df6818ccb">Cy_SMIF_CacheDisable</a> or invalidated using <a class="el" href="group__group__smif__low__level__functions.html#ga72240c0ce8307c50b65c4fca45c9cd30">Cy_SMIF_CacheInvalidate</a> or any other system level cache to be cleared so that the next read/execute from flash operation results in correct data. </dd></dl>

</div>
</div>
<a id="gac240b9055afb5c86a8ed9c6a23f9ba23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac240b9055afb5c86a8ed9c6a23f9ba23">&#9670;&nbsp;</a></span>Cy_SMIF_IsCryptoEnabled()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_IsCryptoEnabled </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slaveId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>crypto_status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks the status of encryption for the selected slave device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slaveId</td><td>salve select line to indicate the device on which encryption should be disabled.</td></tr>
    <tr><td class="paramname">crypto_status</td><td>Holds the status of encryption.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>CY_SMIF_SUCCESS if we are able get the Cache status otherwise returns CY_SMIF_BAD_PARAM. </dd></dl>

</div>
</div>
<a id="ga5252ac741f6ba0122748d89d907d87f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5252ac741f6ba0122748d89d907d87f6">&#9670;&nbsp;</a></span>Cy_SMIF_ConvertSlaveSlotToIndex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_ConvertSlaveSlotToIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>ss</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>device_idx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Converts Slave Select enum to the device index. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ss</td><td>Slave Select enum.</td></tr>
    <tr><td class="paramname">device_idx</td><td>A pointer to device index to be returned.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>. </dd></dl>

</div>
</div>
<a id="ga25746c7a8d9bd474509d10dcf48133ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga25746c7a8d9bd474509d10dcf48133ca">&#9670;&nbsp;</a></span>Cy_SMIF_SetRxCaptureMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_SetRxCaptureMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga159307bb2b563a18f87dcf492a2bcc75">cy_en_smif_capture_mode_t</a>&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slaveId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets the Rx Capture mode setting for SMIF IP block instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">mode</td><td>Rx Capture mode <a class="el" href="group__group__smif__enums.html#ga159307bb2b563a18f87dcf492a2bcc75">cy_en_smif_capture_mode_t</a></td></tr>
    <tr><td class="paramname">slaveId</td><td>Slave ID for which RX Capture configuration has to be updated.</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"></div><div class="line">    <span class="comment">/* Scenario: Using an external flash which supports DLP (Data Learning Pattern). */</span></div><div class="line"></div><div class="line"><span class="preprocessor">    #define S25HS512T_DLP_PATTERN       (0U)</span></div><div class="line"><span class="preprocessor">    #define S25HS512T_DLP_SIZE          (8U)</span></div><div class="line"><span class="preprocessor">    #define TIMEOUT_1_S                 (1000U)</span></div><div class="line"><span class="preprocessor">    #define DESELECT_DELAY              (7U)</span></div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> status = <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a>;</div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIFContext;</div><div class="line">    uint16_t dlp_size = 0U;</div><div class="line">    uint16_t dlp_pattern = 0U;</div><div class="line"></div><div class="line">    <span class="comment">/* SMIF configuration parameters */</span></div><div class="line">    <a class="code" href="structcy__stc__smif__config__t.html">cy_stc_smif_config_t</a> tst_smifConfig =</div><div class="line">    {</div><div class="line">        .<a class="code" href="structcy__stc__smif__config__t.html#aafd7927f913f7ce00475898ca8a032f8">mode</a>           =  <a class="code" href="group__group__smif__enums.html#gga2baa7c37d2cedf2e2c837facc753ab5da4fe852fb31547c77b31203ec5c43ca91">CY_SMIF_NORMAL</a>,      <span class="comment">/* Mode of operation */</span></div><div class="line">        .deselectDelay  =  DESELECT_DELAY,      <span class="comment">/* Minimum duration of SPI deselection */</span></div><div class="line">        .rxClockSel     =  <a class="code" href="group__group__smif__enums.html#gga6a2149f74b63ec4ebc76b99a9eb633d2a050154bdc9cc2242c0224d8992355951">CY_SMIF_SEL_INVERTED_INTERNAL_CLK</a>,     <span class="comment">/* Clock source for the receiver clock. This field is not used in SMIF IP version 5 */</span></div><div class="line">        .blockEvent     =  <a class="code" href="group__group__smif__enums.html#ggaf2f886b17b9d40712b212e704665341ea4ee6427df49e552167b2eb7a70f4afc4">CY_SMIF_BUS_ERROR</a>    <span class="comment">/* What happens when there is a read</span></div><div class="line"><span class="comment">                                                 * to an empty RX FIFO or write to a full TX FIFO</span></div><div class="line"><span class="comment">                                                 */</span></div><div class="line">    };</div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> SMIF_Status = <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a>;</div><div class="line"></div><div class="line">    SMIF_Status = <a class="code" href="group__group__smif__low__level__functions.html#gaea2684847f04e2e7e2c85cfe7fd37881">Cy_SMIF_Init</a>(SMIF, &amp;tst_smifConfig, TIMEOUT_1_MS, &amp;SMIFContext);</div><div class="line"></div><div class="line">    <span class="keywordflow">if</span> (SMIF_Status == <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a>)</div><div class="line">    {</div><div class="line">        <span class="comment">/* Set Data Select */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga1df033f6664a2b41cf044f2c4ec60817">Cy_SMIF_SetDataSelect</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggad776a0db9224477ab865254a32d9e312ae942102fb4b1a03a13ca8950b607520d">CY_SMIF_SLAVE_SELECT_0</a>, <a class="code" href="group__group__smif__enums.html#gga6d9ba2ef785b94cf542c573a51a0eb58a7544d58a69a1a2308ebd0cac9099cd24">CY_SMIF_DATA_SEL0</a>);</div><div class="line"></div><div class="line">        <span class="comment">/* Set RX Capture mode to Normal SPI with Data Learning Pattern */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga25746c7a8d9bd474509d10dcf48133ca">Cy_SMIF_SetRxCaptureMode</a>(SMIF, <a class="code" href="group__group__smif__enums.html#gga159307bb2b563a18f87dcf492a2bcc75a4223535fb0e9f40aa3402e30f3aeecb9">CY_SMIF_SEL_NORMAL_SPI_WITH_DLP</a>, <a class="code" href="group__group__smif__enums.html#ggad776a0db9224477ab865254a32d9e312ae942102fb4b1a03a13ca8950b607520d">CY_SMIF_SLAVE_SELECT_0</a>);</div><div class="line">        </div><div class="line">        <span class="comment">/* Set Master DLP */</span></div><div class="line">        SMIF_Status = <a class="code" href="group__group__smif__low__level__functions.html#ga6ecd1075db9d75ae45f4eb437dbfed8d">Cy_SMIF_SetMasterDLP</a>(SMIF, S25HS512T_DLP_PATTERN, S25HS512T_DLP_SIZE);</div><div class="line"></div><div class="line">        <span class="keywordflow">if</span> (SMIF_Status == <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a>)</div><div class="line">        {</div><div class="line">            <span class="comment">/* Optional : To retrieve the DLP settings used by SMIF */</span></div><div class="line">              <span class="comment">/* Get Master DLP Size */</span></div><div class="line">              dlp_size = <a class="code" href="group__group__smif__low__level__functions.html#ga220136f6a2fe90ea720c3e1577f96421">Cy_SMIF_GetMasterDLPSize</a>(SMIF);</div><div class="line"></div><div class="line">              <span class="comment">/* Get Master DLP Pattern */</span></div><div class="line">            dlp_pattern = <a class="code" href="group__group__smif__low__level__functions.html#ga338f6c1d218cd2093c48254995f6f06b">Cy_SMIF_GetMasterDLP</a>(SMIF);</div><div class="line">        }</div><div class="line"></div><div class="line">        <span class="comment">/* Enable SMIF */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga5428ca682fd56b837a1a3763fc2596b8">Cy_SMIF_Enable</a>(SMIF, &amp;SMIFContext);</div><div class="line"></div><div class="line">    }</div><div class="line">    <span class="comment">/* The following void casts are to eliminate unused-variable warnings at compile-time*/</span></div><div class="line">    (void)status;</div><div class="line">    (void)dlp_size;</div><div class="line">    (void)dlp_pattern;</div><div class="line">    <span class="comment">/* Perform Memory slot Initialization and Read operation should use DLP in latency cycles duration */</span></div><div class="line"></div></div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D and CAT1C (TVIIC only) devices. </dd></dl>

</div>
</div>
<a id="gaa4ba290997356aff8767bf5519fcbb33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa4ba290997356aff8767bf5519fcbb33">&#9670;&nbsp;</a></span>Cy_SMIF_IsBridgeOn()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Cy_SMIF_IsBridgeOn </td>
          <td>(</td>
          <td class="paramtype">SMIF_Base_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to check the bridge enable state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF base registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the bridge is active (enabled), false if the bridge is not enabled.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D and CAT1C (TVIIC only) devices. </dd></dl>

</div>
</div>
<a id="ga6633fdcf48299706b9c87369d1adf26f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6633fdcf48299706b9c87369d1adf26f">&#9670;&nbsp;</a></span>Cy_SMIF_Bridge_Enable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Bridge_Enable </td>
          <td>(</td>
          <td class="paramtype">SMIF_Base_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to enable/disable Bridge. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF base registers.</td></tr>
    <tr><td class="paramname">enable</td><td>enable/disable the bridge</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D and CAT1C (TVIIC only) devices. </dd></dl>

</div>
</div>
<a id="ga6ecd1075db9d75ae45f4eb437dbfed8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ecd1075db9d75ae45f4eb437dbfed8d">&#9670;&nbsp;</a></span>Cy_SMIF_SetMasterDLP()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_SetMasterDLP </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16&#160;</td>
          <td class="paramname"><em>dlp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets the data learning pattern. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">dlp</td><td>data learning pattern (maximum 16-bit)</td></tr>
    <tr><td class="paramname">size</td><td>pattern size (allowed range 1 to 16 bits)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>status of configuration.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
</ul>
</dd></dl>
<div class="fragment"><div class="line"></div><div class="line">    <span class="comment">/* Scenario: Using an external flash which supports DLP (Data Learning Pattern). */</span></div><div class="line"></div><div class="line"><span class="preprocessor">    #define S25HS512T_DLP_PATTERN       (0U)</span></div><div class="line"><span class="preprocessor">    #define S25HS512T_DLP_SIZE          (8U)</span></div><div class="line"><span class="preprocessor">    #define TIMEOUT_1_S                 (1000U)</span></div><div class="line"><span class="preprocessor">    #define DESELECT_DELAY              (7U)</span></div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> status = <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a>;</div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIFContext;</div><div class="line">    uint16_t dlp_size = 0U;</div><div class="line">    uint16_t dlp_pattern = 0U;</div><div class="line"></div><div class="line">    <span class="comment">/* SMIF configuration parameters */</span></div><div class="line">    <a class="code" href="structcy__stc__smif__config__t.html">cy_stc_smif_config_t</a> tst_smifConfig =</div><div class="line">    {</div><div class="line">        .<a class="code" href="structcy__stc__smif__config__t.html#aafd7927f913f7ce00475898ca8a032f8">mode</a>           =  <a class="code" href="group__group__smif__enums.html#gga2baa7c37d2cedf2e2c837facc753ab5da4fe852fb31547c77b31203ec5c43ca91">CY_SMIF_NORMAL</a>,      <span class="comment">/* Mode of operation */</span></div><div class="line">        .deselectDelay  =  DESELECT_DELAY,      <span class="comment">/* Minimum duration of SPI deselection */</span></div><div class="line">        .rxClockSel     =  <a class="code" href="group__group__smif__enums.html#gga6a2149f74b63ec4ebc76b99a9eb633d2a050154bdc9cc2242c0224d8992355951">CY_SMIF_SEL_INVERTED_INTERNAL_CLK</a>,     <span class="comment">/* Clock source for the receiver clock. This field is not used in SMIF IP version 5 */</span></div><div class="line">        .blockEvent     =  <a class="code" href="group__group__smif__enums.html#ggaf2f886b17b9d40712b212e704665341ea4ee6427df49e552167b2eb7a70f4afc4">CY_SMIF_BUS_ERROR</a>    <span class="comment">/* What happens when there is a read</span></div><div class="line"><span class="comment">                                                 * to an empty RX FIFO or write to a full TX FIFO</span></div><div class="line"><span class="comment">                                                 */</span></div><div class="line">    };</div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> SMIF_Status = <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a>;</div><div class="line"></div><div class="line">    SMIF_Status = <a class="code" href="group__group__smif__low__level__functions.html#gaea2684847f04e2e7e2c85cfe7fd37881">Cy_SMIF_Init</a>(SMIF, &amp;tst_smifConfig, TIMEOUT_1_MS, &amp;SMIFContext);</div><div class="line"></div><div class="line">    <span class="keywordflow">if</span> (SMIF_Status == <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a>)</div><div class="line">    {</div><div class="line">        <span class="comment">/* Set Data Select */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga1df033f6664a2b41cf044f2c4ec60817">Cy_SMIF_SetDataSelect</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggad776a0db9224477ab865254a32d9e312ae942102fb4b1a03a13ca8950b607520d">CY_SMIF_SLAVE_SELECT_0</a>, <a class="code" href="group__group__smif__enums.html#gga6d9ba2ef785b94cf542c573a51a0eb58a7544d58a69a1a2308ebd0cac9099cd24">CY_SMIF_DATA_SEL0</a>);</div><div class="line"></div><div class="line">        <span class="comment">/* Set RX Capture mode to Normal SPI with Data Learning Pattern */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga25746c7a8d9bd474509d10dcf48133ca">Cy_SMIF_SetRxCaptureMode</a>(SMIF, <a class="code" href="group__group__smif__enums.html#gga159307bb2b563a18f87dcf492a2bcc75a4223535fb0e9f40aa3402e30f3aeecb9">CY_SMIF_SEL_NORMAL_SPI_WITH_DLP</a>, <a class="code" href="group__group__smif__enums.html#ggad776a0db9224477ab865254a32d9e312ae942102fb4b1a03a13ca8950b607520d">CY_SMIF_SLAVE_SELECT_0</a>);</div><div class="line">        </div><div class="line">        <span class="comment">/* Set Master DLP */</span></div><div class="line">        SMIF_Status = <a class="code" href="group__group__smif__low__level__functions.html#ga6ecd1075db9d75ae45f4eb437dbfed8d">Cy_SMIF_SetMasterDLP</a>(SMIF, S25HS512T_DLP_PATTERN, S25HS512T_DLP_SIZE);</div><div class="line"></div><div class="line">        <span class="keywordflow">if</span> (SMIF_Status == <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a>)</div><div class="line">        {</div><div class="line">            <span class="comment">/* Optional : To retrieve the DLP settings used by SMIF */</span></div><div class="line">              <span class="comment">/* Get Master DLP Size */</span></div><div class="line">              dlp_size = <a class="code" href="group__group__smif__low__level__functions.html#ga220136f6a2fe90ea720c3e1577f96421">Cy_SMIF_GetMasterDLPSize</a>(SMIF);</div><div class="line"></div><div class="line">              <span class="comment">/* Get Master DLP Pattern */</span></div><div class="line">            dlp_pattern = <a class="code" href="group__group__smif__low__level__functions.html#ga338f6c1d218cd2093c48254995f6f06b">Cy_SMIF_GetMasterDLP</a>(SMIF);</div><div class="line">        }</div><div class="line"></div><div class="line">        <span class="comment">/* Enable SMIF */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga5428ca682fd56b837a1a3763fc2596b8">Cy_SMIF_Enable</a>(SMIF, &amp;SMIFContext);</div><div class="line"></div><div class="line">    }</div><div class="line">    <span class="comment">/* The following void casts are to eliminate unused-variable warnings at compile-time*/</span></div><div class="line">    (void)status;</div><div class="line">    (void)dlp_size;</div><div class="line">    (void)dlp_pattern;</div><div class="line">    <span class="comment">/* Perform Memory slot Initialization and Read operation should use DLP in latency cycles duration */</span></div><div class="line"></div></div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D and CAT1C (TVIIC only) devices with Rx Capture mode set to <a class="el" href="group__group__smif__enums.html#gga159307bb2b563a18f87dcf492a2bcc75a4223535fb0e9f40aa3402e30f3aeecb9">CY_SMIF_SEL_NORMAL_SPI_WITH_DLP</a> </dd></dl>

</div>
</div>
<a id="ga338f6c1d218cd2093c48254995f6f06b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga338f6c1d218cd2093c48254995f6f06b">&#9670;&nbsp;</a></span>Cy_SMIF_GetMasterDLP()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t Cy_SMIF_GetMasterDLP </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function gets the data learning pattern configured. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Data learning pattern configured</dd></dl>
<div class="fragment"><div class="line"></div><div class="line">    <span class="comment">/* Scenario: Using an external flash which supports DLP (Data Learning Pattern). */</span></div><div class="line"></div><div class="line"><span class="preprocessor">    #define S25HS512T_DLP_PATTERN       (0U)</span></div><div class="line"><span class="preprocessor">    #define S25HS512T_DLP_SIZE          (8U)</span></div><div class="line"><span class="preprocessor">    #define TIMEOUT_1_S                 (1000U)</span></div><div class="line"><span class="preprocessor">    #define DESELECT_DELAY              (7U)</span></div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> status = <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a>;</div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIFContext;</div><div class="line">    uint16_t dlp_size = 0U;</div><div class="line">    uint16_t dlp_pattern = 0U;</div><div class="line"></div><div class="line">    <span class="comment">/* SMIF configuration parameters */</span></div><div class="line">    <a class="code" href="structcy__stc__smif__config__t.html">cy_stc_smif_config_t</a> tst_smifConfig =</div><div class="line">    {</div><div class="line">        .<a class="code" href="structcy__stc__smif__config__t.html#aafd7927f913f7ce00475898ca8a032f8">mode</a>           =  <a class="code" href="group__group__smif__enums.html#gga2baa7c37d2cedf2e2c837facc753ab5da4fe852fb31547c77b31203ec5c43ca91">CY_SMIF_NORMAL</a>,      <span class="comment">/* Mode of operation */</span></div><div class="line">        .deselectDelay  =  DESELECT_DELAY,      <span class="comment">/* Minimum duration of SPI deselection */</span></div><div class="line">        .rxClockSel     =  <a class="code" href="group__group__smif__enums.html#gga6a2149f74b63ec4ebc76b99a9eb633d2a050154bdc9cc2242c0224d8992355951">CY_SMIF_SEL_INVERTED_INTERNAL_CLK</a>,     <span class="comment">/* Clock source for the receiver clock. This field is not used in SMIF IP version 5 */</span></div><div class="line">        .blockEvent     =  <a class="code" href="group__group__smif__enums.html#ggaf2f886b17b9d40712b212e704665341ea4ee6427df49e552167b2eb7a70f4afc4">CY_SMIF_BUS_ERROR</a>    <span class="comment">/* What happens when there is a read</span></div><div class="line"><span class="comment">                                                 * to an empty RX FIFO or write to a full TX FIFO</span></div><div class="line"><span class="comment">                                                 */</span></div><div class="line">    };</div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> SMIF_Status = <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a>;</div><div class="line"></div><div class="line">    SMIF_Status = <a class="code" href="group__group__smif__low__level__functions.html#gaea2684847f04e2e7e2c85cfe7fd37881">Cy_SMIF_Init</a>(SMIF, &amp;tst_smifConfig, TIMEOUT_1_MS, &amp;SMIFContext);</div><div class="line"></div><div class="line">    <span class="keywordflow">if</span> (SMIF_Status == <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a>)</div><div class="line">    {</div><div class="line">        <span class="comment">/* Set Data Select */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga1df033f6664a2b41cf044f2c4ec60817">Cy_SMIF_SetDataSelect</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggad776a0db9224477ab865254a32d9e312ae942102fb4b1a03a13ca8950b607520d">CY_SMIF_SLAVE_SELECT_0</a>, <a class="code" href="group__group__smif__enums.html#gga6d9ba2ef785b94cf542c573a51a0eb58a7544d58a69a1a2308ebd0cac9099cd24">CY_SMIF_DATA_SEL0</a>);</div><div class="line"></div><div class="line">        <span class="comment">/* Set RX Capture mode to Normal SPI with Data Learning Pattern */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga25746c7a8d9bd474509d10dcf48133ca">Cy_SMIF_SetRxCaptureMode</a>(SMIF, <a class="code" href="group__group__smif__enums.html#gga159307bb2b563a18f87dcf492a2bcc75a4223535fb0e9f40aa3402e30f3aeecb9">CY_SMIF_SEL_NORMAL_SPI_WITH_DLP</a>, <a class="code" href="group__group__smif__enums.html#ggad776a0db9224477ab865254a32d9e312ae942102fb4b1a03a13ca8950b607520d">CY_SMIF_SLAVE_SELECT_0</a>);</div><div class="line">        </div><div class="line">        <span class="comment">/* Set Master DLP */</span></div><div class="line">        SMIF_Status = <a class="code" href="group__group__smif__low__level__functions.html#ga6ecd1075db9d75ae45f4eb437dbfed8d">Cy_SMIF_SetMasterDLP</a>(SMIF, S25HS512T_DLP_PATTERN, S25HS512T_DLP_SIZE);</div><div class="line"></div><div class="line">        <span class="keywordflow">if</span> (SMIF_Status == <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a>)</div><div class="line">        {</div><div class="line">            <span class="comment">/* Optional : To retrieve the DLP settings used by SMIF */</span></div><div class="line">              <span class="comment">/* Get Master DLP Size */</span></div><div class="line">              dlp_size = <a class="code" href="group__group__smif__low__level__functions.html#ga220136f6a2fe90ea720c3e1577f96421">Cy_SMIF_GetMasterDLPSize</a>(SMIF);</div><div class="line"></div><div class="line">              <span class="comment">/* Get Master DLP Pattern */</span></div><div class="line">            dlp_pattern = <a class="code" href="group__group__smif__low__level__functions.html#ga338f6c1d218cd2093c48254995f6f06b">Cy_SMIF_GetMasterDLP</a>(SMIF);</div><div class="line">        }</div><div class="line"></div><div class="line">        <span class="comment">/* Enable SMIF */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga5428ca682fd56b837a1a3763fc2596b8">Cy_SMIF_Enable</a>(SMIF, &amp;SMIFContext);</div><div class="line"></div><div class="line">    }</div><div class="line">    <span class="comment">/* The following void casts are to eliminate unused-variable warnings at compile-time*/</span></div><div class="line">    (void)status;</div><div class="line">    (void)dlp_size;</div><div class="line">    (void)dlp_pattern;</div><div class="line">    <span class="comment">/* Perform Memory slot Initialization and Read operation should use DLP in latency cycles duration */</span></div><div class="line"></div></div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D and CAT1C (TVIIC only) devices. </dd></dl>

</div>
</div>
<a id="ga220136f6a2fe90ea720c3e1577f96421"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga220136f6a2fe90ea720c3e1577f96421">&#9670;&nbsp;</a></span>Cy_SMIF_GetMasterDLPSize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t Cy_SMIF_GetMasterDLPSize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function gets the data learning pattern size configured. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Data learning pattern size configured.</dd></dl>
<div class="fragment"><div class="line"></div><div class="line">    <span class="comment">/* Scenario: Using an external flash which supports DLP (Data Learning Pattern). */</span></div><div class="line"></div><div class="line"><span class="preprocessor">    #define S25HS512T_DLP_PATTERN       (0U)</span></div><div class="line"><span class="preprocessor">    #define S25HS512T_DLP_SIZE          (8U)</span></div><div class="line"><span class="preprocessor">    #define TIMEOUT_1_S                 (1000U)</span></div><div class="line"><span class="preprocessor">    #define DESELECT_DELAY              (7U)</span></div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> status = <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a>;</div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIFContext;</div><div class="line">    uint16_t dlp_size = 0U;</div><div class="line">    uint16_t dlp_pattern = 0U;</div><div class="line"></div><div class="line">    <span class="comment">/* SMIF configuration parameters */</span></div><div class="line">    <a class="code" href="structcy__stc__smif__config__t.html">cy_stc_smif_config_t</a> tst_smifConfig =</div><div class="line">    {</div><div class="line">        .<a class="code" href="structcy__stc__smif__config__t.html#aafd7927f913f7ce00475898ca8a032f8">mode</a>           =  <a class="code" href="group__group__smif__enums.html#gga2baa7c37d2cedf2e2c837facc753ab5da4fe852fb31547c77b31203ec5c43ca91">CY_SMIF_NORMAL</a>,      <span class="comment">/* Mode of operation */</span></div><div class="line">        .deselectDelay  =  DESELECT_DELAY,      <span class="comment">/* Minimum duration of SPI deselection */</span></div><div class="line">        .rxClockSel     =  <a class="code" href="group__group__smif__enums.html#gga6a2149f74b63ec4ebc76b99a9eb633d2a050154bdc9cc2242c0224d8992355951">CY_SMIF_SEL_INVERTED_INTERNAL_CLK</a>,     <span class="comment">/* Clock source for the receiver clock. This field is not used in SMIF IP version 5 */</span></div><div class="line">        .blockEvent     =  <a class="code" href="group__group__smif__enums.html#ggaf2f886b17b9d40712b212e704665341ea4ee6427df49e552167b2eb7a70f4afc4">CY_SMIF_BUS_ERROR</a>    <span class="comment">/* What happens when there is a read</span></div><div class="line"><span class="comment">                                                 * to an empty RX FIFO or write to a full TX FIFO</span></div><div class="line"><span class="comment">                                                 */</span></div><div class="line">    };</div><div class="line"></div><div class="line">    <a class="code" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> SMIF_Status = <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a>;</div><div class="line"></div><div class="line">    SMIF_Status = <a class="code" href="group__group__smif__low__level__functions.html#gaea2684847f04e2e7e2c85cfe7fd37881">Cy_SMIF_Init</a>(SMIF, &amp;tst_smifConfig, TIMEOUT_1_MS, &amp;SMIFContext);</div><div class="line"></div><div class="line">    <span class="keywordflow">if</span> (SMIF_Status == <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a>)</div><div class="line">    {</div><div class="line">        <span class="comment">/* Set Data Select */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga1df033f6664a2b41cf044f2c4ec60817">Cy_SMIF_SetDataSelect</a>(SMIF, <a class="code" href="group__group__smif__enums.html#ggad776a0db9224477ab865254a32d9e312ae942102fb4b1a03a13ca8950b607520d">CY_SMIF_SLAVE_SELECT_0</a>, <a class="code" href="group__group__smif__enums.html#gga6d9ba2ef785b94cf542c573a51a0eb58a7544d58a69a1a2308ebd0cac9099cd24">CY_SMIF_DATA_SEL0</a>);</div><div class="line"></div><div class="line">        <span class="comment">/* Set RX Capture mode to Normal SPI with Data Learning Pattern */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga25746c7a8d9bd474509d10dcf48133ca">Cy_SMIF_SetRxCaptureMode</a>(SMIF, <a class="code" href="group__group__smif__enums.html#gga159307bb2b563a18f87dcf492a2bcc75a4223535fb0e9f40aa3402e30f3aeecb9">CY_SMIF_SEL_NORMAL_SPI_WITH_DLP</a>, <a class="code" href="group__group__smif__enums.html#ggad776a0db9224477ab865254a32d9e312ae942102fb4b1a03a13ca8950b607520d">CY_SMIF_SLAVE_SELECT_0</a>);</div><div class="line">        </div><div class="line">        <span class="comment">/* Set Master DLP */</span></div><div class="line">        SMIF_Status = <a class="code" href="group__group__smif__low__level__functions.html#ga6ecd1075db9d75ae45f4eb437dbfed8d">Cy_SMIF_SetMasterDLP</a>(SMIF, S25HS512T_DLP_PATTERN, S25HS512T_DLP_SIZE);</div><div class="line"></div><div class="line">        <span class="keywordflow">if</span> (SMIF_Status == <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a>)</div><div class="line">        {</div><div class="line">            <span class="comment">/* Optional : To retrieve the DLP settings used by SMIF */</span></div><div class="line">              <span class="comment">/* Get Master DLP Size */</span></div><div class="line">              dlp_size = <a class="code" href="group__group__smif__low__level__functions.html#ga220136f6a2fe90ea720c3e1577f96421">Cy_SMIF_GetMasterDLPSize</a>(SMIF);</div><div class="line"></div><div class="line">              <span class="comment">/* Get Master DLP Pattern */</span></div><div class="line">            dlp_pattern = <a class="code" href="group__group__smif__low__level__functions.html#ga338f6c1d218cd2093c48254995f6f06b">Cy_SMIF_GetMasterDLP</a>(SMIF);</div><div class="line">        }</div><div class="line"></div><div class="line">        <span class="comment">/* Enable SMIF */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga5428ca682fd56b837a1a3763fc2596b8">Cy_SMIF_Enable</a>(SMIF, &amp;SMIFContext);</div><div class="line"></div><div class="line">    }</div><div class="line">    <span class="comment">/* The following void casts are to eliminate unused-variable warnings at compile-time*/</span></div><div class="line">    (void)status;</div><div class="line">    (void)dlp_size;</div><div class="line">    (void)dlp_pattern;</div><div class="line">    <span class="comment">/* Perform Memory slot Initialization and Read operation should use DLP in latency cycles duration */</span></div><div class="line"></div></div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D and CAT1C (TVIIC only) devices. </dd></dl>

</div>
</div>
<a id="gae7f56e6919c991ce5b1e0947c0994644"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae7f56e6919c991ce5b1e0947c0994644">&#9670;&nbsp;</a></span>Cy_SMIF_GetTapNumCapturedCorrectDLP()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t Cy_SMIF_GetTapNumCapturedCorrectDLP </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>bit</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function gets number of delay taps used for specified data line. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">bit</td><td>DLP Tap selection for the bit position mapped as per <a class="el" href="group__group__smif__low__level__functions.html#ga1df033f6664a2b41cf044f2c4ec60817">Cy_SMIF_SetDataSelect</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Data learning pattern configured</dd></dl>
<div class="fragment"><div class="line">   uint8_t delaytap_bit0, delaytap_bit1, delaytap_bit2, delaytap_bit3;</div><div class="line"></div><div class="line">   delaytap_bit0 = <a class="code" href="group__group__smif__low__level__functions.html#gae7f56e6919c991ce5b1e0947c0994644">Cy_SMIF_GetTapNumCapturedCorrectDLP</a>(SMIF, 0U);</div><div class="line">   delaytap_bit1 = <a class="code" href="group__group__smif__low__level__functions.html#gae7f56e6919c991ce5b1e0947c0994644">Cy_SMIF_GetTapNumCapturedCorrectDLP</a>(SMIF, 0U);</div><div class="line">   delaytap_bit2 = <a class="code" href="group__group__smif__low__level__functions.html#gae7f56e6919c991ce5b1e0947c0994644">Cy_SMIF_GetTapNumCapturedCorrectDLP</a>(SMIF, 0U);</div><div class="line">   delaytap_bit3 = <a class="code" href="group__group__smif__low__level__functions.html#gae7f56e6919c991ce5b1e0947c0994644">Cy_SMIF_GetTapNumCapturedCorrectDLP</a>(SMIF, 0U);</div><div class="line"></div></div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>This API is available for CAT1D and CAT1C (TVIIC only) devices. </dd></dl>

</div>
</div>
<a id="gae88b33af21e1dd8fc761317b4f81b4f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae88b33af21e1dd8fc761317b4f81b4f4">&#9670;&nbsp;</a></span>CY_SMIF_GetDelayTapsNumber()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t CY_SMIF_GetDelayTapsNumber </td>
          <td>(</td>
          <td class="paramtype">volatile void *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function returns tap number which the SMIF IP has. </p>
<p>User can input both SMIF DEVICE block address and SMIF block address</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Base address of the SMIF block or the SMIF DEVICE block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Delay tap Number of the SMIF IP </dd></dl>

</div>
</div>
<a id="gab67d2aecdf1783c11ea54acb78ea2034"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab67d2aecdf1783c11ea54acb78ea2034">&#9670;&nbsp;</a></span>Cy_SMIF_InitCache()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_InitCache </td>
          <td>(</td>
          <td class="paramtype">SMIF_CACHE_BLOCK_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcy__stc__smif__cache__config__t.html">cy_stc_smif_cache_config_t</a> *&#160;</td>
          <td class="paramname"><em>cache_config</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initializes SMIF internal CACHE with user provided configuration <a class="el" href="structcy__stc__smif__cache__config__t.html">cy_stc_smif_cache_config_t</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block.</td></tr>
    <tr><td class="paramname">cache_config</td><td>Contains the configuration information to configure SMIF internal Cache.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns result of CACHE configuration.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices.</dd></dl>
<div class="fragment"><div class="line">    <a class="code" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> SMIF_Status = <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a>;</div><div class="line"></div><div class="line">    <span class="comment">/* SMIF configuration parameters */</span></div><div class="line">    <a class="code" href="structcy__stc__smif__config__t.html">cy_stc_smif_config_t</a> tst_smifConfig =</div><div class="line">    {</div><div class="line">        .<a class="code" href="structcy__stc__smif__config__t.html#aafd7927f913f7ce00475898ca8a032f8">mode</a>           =  <a class="code" href="group__group__smif__enums.html#gga2baa7c37d2cedf2e2c837facc753ab5da4fe852fb31547c77b31203ec5c43ca91">CY_SMIF_NORMAL</a>,      <span class="comment">/* Mode of operation */</span></div><div class="line">        .deselectDelay  =  DESELECT_DELAY,      <span class="comment">/* Minimum duration of SPI deselection */</span></div><div class="line">        .rxClockSel     =  <a class="code" href="group__group__smif__enums.html#gga6a2149f74b63ec4ebc76b99a9eb633d2a050154bdc9cc2242c0224d8992355951">CY_SMIF_SEL_INVERTED_INTERNAL_CLK</a>,     <span class="comment">/* Clock source for the receiver clock. This field is not used in SMIF IP version 5 */</span></div><div class="line">        .blockEvent     =  <a class="code" href="group__group__smif__enums.html#ggaf2f886b17b9d40712b212e704665341ea4ee6427df49e552167b2eb7a70f4afc4">CY_SMIF_BUS_ERROR</a>    <span class="comment">/* What happens when there is a read</span></div><div class="line"><span class="comment">                                                 * to an empty RX FIFO or write to a full TX FIFO</span></div><div class="line"><span class="comment">                                                 */</span></div><div class="line">    };</div><div class="line"></div><div class="line">    <span class="comment">/* SMIF Cache Region configuration. Upto 4 regions can be configured with different CACHE attributes. Make sure they do not overlap */</span></div><div class="line">    <a class="code" href="structcy__stc__smif__cache__region__t.html">cy_stc_smif_cache_region_t</a> cache_region_0 =</div><div class="line">    {</div><div class="line">        .<a class="code" href="structcy__stc__smif__cache__region__t.html#acf2fe2272c55899642e90e4645828069">enabled</a> = <span class="keyword">true</span>,</div><div class="line">        .start_address = 0x60000000,</div><div class="line">        .end_address = 0x60400000,</div><div class="line">        .cache_attributes = <a class="code" href="group__group__smif__enums.html#gga2a1121193cee4d27da9f5a354c9b14c9a2fb5dbad17396457183283f6f9efa62f">CY_SMIF_CACHEABLE_WB_RWA</a></div><div class="line">    };</div><div class="line">    <a class="code" href="structcy__stc__smif__cache__region__t.html">cy_stc_smif_cache_region_t</a> *cache_region_info[] =</div><div class="line">    {</div><div class="line">        &amp;cache_region_0</div><div class="line">    };</div><div class="line"></div><div class="line">    <a class="code" href="structcy__stc__smif__cache__config__t.html">cy_stc_smif_cache_config_t</a> cache_config =</div><div class="line">    {</div><div class="line">        .<a class="code" href="structcy__stc__smif__cache__config__t.html#ab44796423b973958270b506d73cbdfa0">enabled</a> = <span class="keyword">true</span>,</div><div class="line">        .cache_retention_on = <span class="keyword">true</span>,</div><div class="line">        .cache_region = &amp;cache_region_info[0],</div><div class="line">        .cache_region_count = 1U</div><div class="line">    };</div><div class="line">    SMIF_Status = <a class="code" href="group__group__smif__low__level__functions.html#gaea2684847f04e2e7e2c85cfe7fd37881">Cy_SMIF_Init</a>(SMIF_HW, &amp;smifConfig, timeout, &amp;smifContext);</div><div class="line"></div><div class="line">    <span class="keywordflow">if</span>(SMIF_Status == <a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a>)</div><div class="line">    {</div><div class="line">        <span class="comment">/* Initialize CACHE */</span></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#gab67d2aecdf1783c11ea54acb78ea2034">Cy_SMIF_InitCache</a>(SMIF0_CACHE_BLOCK, &amp;cache_config);</div><div class="line"></div><div class="line">        <a class="code" href="group__group__smif__low__level__functions.html#ga5428ca682fd56b837a1a3763fc2596b8">Cy_SMIF_Enable</a>(SMIF_HW, &amp;SMIFContext);</div><div class="line">    }</div></div><!-- fragment -->
</div>
</div>
<a id="gaf787cd8f7a861b180590d688355e8f60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf787cd8f7a861b180590d688355e8f60">&#9670;&nbsp;</a></span>Cy_SMIF_Clean_All_Cache()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Clean_All_Cache </td>
          <td>(</td>
          <td class="paramtype">SMIF_CACHE_BLOCK_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function cleans complete SMIF internal CACHE. </p>
<p>This is a blocking call and returns with the status of CACHE clean operation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns result of CACHE clean operation.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga2538ba5552b05c63ae9a2a4c21dbcab3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2538ba5552b05c63ae9a2a4c21dbcab3">&#9670;&nbsp;</a></span>Cy_SMIF_Invalidate_All_Cache()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Invalidate_All_Cache </td>
          <td>(</td>
          <td class="paramtype">SMIF_CACHE_BLOCK_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function invalidates complete SMIF internal CACHE. </p>
<p>This is a blocking call and returns with the status of CACHE invalidate operation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns result of CACHE invalidate operation.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga2a1e1e493def6dbcf46207f7e322052d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2a1e1e493def6dbcf46207f7e322052d">&#9670;&nbsp;</a></span>Cy_SMIF_Clean_And_Invalidate_All_Cache()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Clean_And_Invalidate_All_Cache </td>
          <td>(</td>
          <td class="paramtype">SMIF_CACHE_BLOCK_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function cleans and invalidates complete SMIF internal CACHE. </p>
<p>This is a blocking call and returns with the status of CACHE invalidate and clean operation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns result of CACHE clean and invalidate operation.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga7443088032b3b278ad5a9228be60378b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7443088032b3b278ad5a9228be60378b">&#9670;&nbsp;</a></span>Cy_SMIF_Clean_Cache_by_Addr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Clean_Cache_by_Addr </td>
          <td>(</td>
          <td class="paramtype">SMIF_CACHE_BLOCK_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>is_secure_view</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function cleans cache using the address and size specified by user. </p>
<p>This is a blocking call and returns with the status of CACHE clean operation. Size must be specified in multiples of CACHE line size (32 bytes).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block.</td></tr>
    <tr><td class="paramname">is_secure_view</td><td>Specifies the view on which cache operation has to be performed. In non-secure world this parameter is ignored and defaulted to non-secure view cache operation.</td></tr>
    <tr><td class="paramname">address</td><td>start address from which cache operation should be performed.</td></tr>
    <tr><td class="paramname">size</td><td>size in multiples of CACHE line size <a class="el" href="group__group__smif__macros.html#ga50de453564c1d61023fff487307c7208">CY_SMIF_CACHE_LINE_SIZE_IN_BYTES</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns result of CACHE clean operation.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga4be70e1edc5b91fbe0269e28395ae375"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4be70e1edc5b91fbe0269e28395ae375">&#9670;&nbsp;</a></span>Cy_SMIF_Invalidate_Cache_by_Addr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Invalidate_Cache_by_Addr </td>
          <td>(</td>
          <td class="paramtype">SMIF_CACHE_BLOCK_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>is_secure_view</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function invalidates cache using the address and size specified by user. </p>
<p>This is a blocking call and returns with the status of CACHE invalidate operation. Size must be specified in multiples of CACHE line size (32 bytes).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block.</td></tr>
    <tr><td class="paramname">is_secure_view</td><td>Specifies the view on which cache operation has to be performed. In non-secure world this parameter is ignored and defaulted to non-secure view cache operation.</td></tr>
    <tr><td class="paramname">address</td><td>start address from which cache operation should be performed.</td></tr>
    <tr><td class="paramname">size</td><td>size in multiples of CACHE line size <a class="el" href="group__group__smif__macros.html#ga50de453564c1d61023fff487307c7208">CY_SMIF_CACHE_LINE_SIZE_IN_BYTES</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns result of CACHE invalidate operation.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
<a id="gaa86bff8a6d243c3d27a12414c5fbb174"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa86bff8a6d243c3d27a12414c5fbb174">&#9670;&nbsp;</a></span>Cy_SMIF_Clean_And_Invalidate_Cache_by_Addr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_Clean_And_Invalidate_Cache_by_Addr </td>
          <td>(</td>
          <td class="paramtype">SMIF_CACHE_BLOCK_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>is_secure_view</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function cleans and invalidates cache using the address and size specified by user. </p>
<p>This is a blocking call and returns with the status of CACHE operation. Size must be specified in multiples of CACHE line size (32 bytes).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block.</td></tr>
    <tr><td class="paramname">is_secure_view</td><td>Specifies the view on which cache operation has to be performed. In non-secure world this parameter is ignored and defaulted to non-secure view cache operation.</td></tr>
    <tr><td class="paramname">address</td><td>start address from which cache operation should be performed.</td></tr>
    <tr><td class="paramname">size</td><td>size in multiples of CACHE line size <a class="el" href="group__group__smif__macros.html#ga50de453564c1d61023fff487307c7208">CY_SMIF_CACHE_LINE_SIZE_IN_BYTES</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns result of CACHE operation.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
<a id="gace242e70ec47914d4c99ccce0bdf4b39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace242e70ec47914d4c99ccce0bdf4b39">&#9670;&nbsp;</a></span>Cy_SMIF_IsCacheEnabled()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_IsCacheEnabled </td>
          <td>(</td>
          <td class="paramtype">SMIF_CACHE_BLOCK_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>cache_status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function checks whether Cache is enabled or not. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block.</td></tr>
    <tr><td class="paramname">cache_status</td><td>Holds the Cache status</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>CY_SMIF_SUCCESS if we are able get the Cache status otherwise returns CY_SMIF_BAD_PARAM.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>MTB CAT1 Peripheral driver library</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
